सबसे पहले, आपका डेटा नीचे के रूप में फिर से तैयार किया जाना चाहिए:
{
name: "Burger",
ingredients: [
"bread",
"cheese",
"tomato",
"beef"
]
}
अतिरिक्त "आइटम" कोई अतिरिक्त जानकारी नहीं जोड़ता है और न ही यह किसी भी तरह से डेटा तक पहुंचने में मदद करता है।
इसके बाद, आपको एक टेक्स्ट इंडेक्स बनाना होगा . दस्तावेज़ बताते हैं कि
तो हम बस एक
. करते हैंdb.collection.ensureIndex({"ingredients":"text"})
अब हम एक $text
कर सकते हैं खोज
:
db.collection.find(
{ $text: { $search: "bread beef" } },
{ score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )
जो आपको सबसे प्रासंगिक दस्तावेज देना चाहिए।
हालांकि, आप सीधे मिलान के लिए एक गैर-पाठ्य खोज भी कर सकते हैं:
db.collection.find({ingredients:"beef"})
या कई सामग्रियों के लिए
db.collections.find({ ingredients: { $all: ["beef","bread"] } })
तो उपयोगकर्ता इनपुट द्वारा खोज के लिए, आप पाठ खोज का उपयोग कर सकते हैं और चयनित सामग्री द्वारा खोज के लिए, आप गैर-पाठ खोज का उपयोग कर सकते हैं।