Anda dapat menambahkan indeks teks ke definisi skema Mongoose Anda yang memungkinkan Anda menggunakan $text
operator di find
kueri untuk mencari semua bidang yang termasuk dalam indeks teks.
Untuk membuat indeks untuk mendukung pencarian teks, katakanlah, name
dan profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Atau jika Anda ingin memasukkan semua bidang string dalam indeks, gunakan '$**'
kartu pengganti:
schema.index({'$**': 'text'});
Ini akan memungkinkan Anda untuk melakukan kueri penelusuran teks berhalaman seperti:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Untuk detail selengkapnya, baca dokumentasi lengkap Indeks Teks MongoDB.