यदि मेरे पास ऐसा रिकॉर्ड है;mongodb एकाधिक सरणी वस्तुओं द्वारा खोजें
{
"text": "text goes here",
"words": ["text", "goes", "here"]
}
मैं MongoDB में उससे कई शब्दों से कैसे मिलान कर सकता हूं? एक शब्द से मेल खाने पर मैं यह कर सकता हूं;
db.find({ words: "text" })
लेकिन जब मैं इसे कई शब्दों के लिए कोशिश करता हूं, तो यह काम नहीं करता है;
db.find({ words: ["text", "here"] })
मेरा अनुमान है कि कि एक सरणी का उपयोग करके, यह बजाय व्यक्तिगत सामग्री से मेल खाते से, रिकॉर्ड में एक के खिलाफ पूरे सरणी मैच के लिए कोशिश करता है।
db.things.find({ words: { $all: ["text", "here"] }});
या उनमें से या तो (text
या here
) $in
का उपयोग कर:
$ वह सब जो मैं खोज रहा था, धन्यवाद। :) –
यह मैं भी मदद की, मैं इसे एक सरणी में एक वस्तु आईडी को खोजने के लिए की जरूरत है, और जहां में $ की तरह कुछ: [ObjectId ("4f9f2c336b810d0cf0000017")] में विफल रहा है, $: [ "4f9f2c336b810d0cf0000017"] काम किया – jbnunn
आप भी कर सकते हैं मैंगोडब समर्थन पृष्ठ में ऐसा करने का एक और तरीका ढूंढें http://docs.mongodb.org/manual/core/indexes/#indexes-on-sub- दस्तावेज़ और http://docs.mongodb.org/manual/core/indexes/# multikey-अनुक्रमित –