Ada beberapa opsi yang dapat Anda gunakan dengan pencarian teks untuk memenuhi kebutuhan tersebut. Perhatikan dokumen berikut:
{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }
"Daftar" kata default adalah atau penyertaan, tetapi jika Anda tidak menginginkan dan termasuk Anda "mengutip" kata-kata:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale monday" }
Jika Anda ingin mengecualikan sebuah kata kemudian Anda awali dengan -
:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
Dan jika Anda menginginkan bagian dari itu sebagai frasa yang tepat lalu Anda "mengutip" seluruh frasa:
db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
Stemming words memang bermasalah, jadi :
db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})
Tidak akan benar-benar mengembalikan hasil.
Lihat dokumentasi di $text
operator untuk contoh. Tidak semua ada di sana saat ini, tetapi semakin baik.