MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Ambil Hasil Urutan yang Relevan dari Kueri Teks pada Koleksi MongoDB menggunakan Driver C#

Saya bisa mendapatkan ini bekerja melalui trial and error. Triknya adalah objek data Anda harus sudah memiliki bidang yang akan menampung MetaTextScore nilai. Jadi mengingat antarmuka:

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

fungsi akhir terlihat seperti ini:

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;
    }
}

Perlu diperhatikan bahwa TextMatchScore tidak dapat memiliki [BsonIgnore] dekorasi, atau akan ada pengecualian. Namun, ia dapat memiliki [BsonIgnoreIfNull] dekorasi. Jadi dengan menghapus nilai dari objek data sebelum menghasilkannya, objek data dapat disimpan kembali ke dalam koleksi tanpa memasukkan nilai sampah.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Replika MongoDB diatur dengan otentikasi kata sandi sederhana

  2. Bagaimana memilih hanya sub-dokumen mongodb yang cocok menggunakan python

  3. Respons aneh ketika menemukan dokumen di MongoDB menggunakan Mongoose di Node.js

  4. Ekstensi php Mongo setelah pembaruan Heroku (komposer)

  5. Kerangka agregasi Mongo:berapa level kunci dari operasi $out tahap terakhir?