MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Извличане на подреден резултат за уместност от текстова заявка в MongoDB Collection с помощта на C# драйвера

Успях да накарам това да работи чрез проба и грешка. Номерът е, че вашият обект с данни трябва вече да има поле, което да съдържа 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 чрез запитване до специалната колекция $cmd?

  2. Обвивката на Mongo не може да се свърже с Azure CosmosDB

  3. Как да намерите всички периоди от време, припокриващи се с друг период от време в MongoDB?

  4. Разбиране на опциите за архивиране на MongoDB

  5. Как да пагинирам с Mongoose в Node.js?