Apakah Anda mencoba pencarian teks untuk melihat apakah itu tidak berperilaku dengan benar? Ini berfungsi seperti yang diharapkan untuk saya di MongoDB 2.6.7:
> db.test.drop()
> db.test.insert({ "t" : "I'm on time, not late or delayed" })
> db.test.insert({ "t" : "I'm either late or delayed" })
> db.test.insert({ "t" : "Time flies like a banana" })
> db.test.ensureIndex({ "t" : "text" })
> db.test.find({ "$text" : { "$search" : "time late delay" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
{ "t" : "Time flies like a banana" }
{ "t" : "I'm either late or delayed" }
> db.test.find({ "$text" : { "$search" : "late delay" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
{ "t" : "I'm either late or delayed" }
> db.test.find({ "$text" : { "$search" : "late delay \"on time\"" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
Mengapa "waktu" dalam terms
array di jelaskan? Karena jika frasa "on time"
terjadi dalam dokumen, istilah time
juga harus. MongoDB menggunakan indeks teks sejauh dapat membantu menemukan frasa dan kemudian akan memeriksa hasil indeks untuk melihat mana yang benar-benar cocok dengan frasa lengkap dan bukan hanya istilah dalam frasa.