MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

सी # ड्राइवर का उपयोग करके मोंगोडीबी संग्रह पर टेक्स्ट क्वेरी से प्रासंगिकता आदेशित परिणाम पुनर्प्राप्त करें

मैं इसे परीक्षण और त्रुटि के माध्यम से काम करने में सक्षम था। चाल यह है कि आपके डेटा ऑब्जेक्ट पर पहले से ही एक फ़ील्ड होना आवश्यक है जो MetaTextScore को धारण करेगा मूल्य। तो दिया गया इंटरफ़ेस:

interface ITextSearchSortable {
    double? TextMatchScore { get; set; }
}

अंतिम कार्य इस तरह दिखता है:

public IEnumerable<T> TextSearch<T>(MongoCollection<T> coll, string text) where T:ITextSearchSortable {
    var cursor = coll.Find(Query.Text(text))
        .SetFields(Fields<T>.MetaTextScore(t => t.TextMatchScore))
        .SetSortOrder(SortBy<T>MetaTextScore(t => t.TextMatchScore));
    foreach(var t in cursor) {
        // prevent saving the value back into the database
        t.TextMatchScore = null;
        yield return t;
    }
}

यह ध्यान देने योग्य है कि TextMatchScore [BsonIgnore] नहीं हो सकता सजावट, या एक अपवाद होगा। हालांकि, इसमें [BsonIgnoreIfNull] . हो सकता है सजावट। इसलिए डेटा ऑब्जेक्ट को प्राप्त करने से पहले उसके मूल्य को स्क्रब करके, डेटा ऑब्जेक्ट को गारबेज वैल्यू डाले बिना संग्रह में वापस सहेजा जा सकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb को ElasticSearch में सिंक करें

  2. OAuth 2.0 - रीफ्रेश टोकन के साथ एक्सेस टोकन का नवीनीकरण कब किया जाना चाहिए?

  3. Async, कॉलबैक, क्लोजर, ओह माय

  4. MongoDB $gte एकत्रीकरण पाइपलाइन ऑपरेटर

  5. MongoDB प्रदर्शन-वार में कंपाउंड इंडेक्स का क्रम कैसे मायने रखता है?