मैं निश्चित रूप से $in क्वेरी का उपयोग करने और _ids की एक सरणी प्रदान करने के साथ जाऊंगा।
उदाहरण:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
क्यों?
- यदि आप लूप करते हैं, तो प्रत्येक क्वेरी बनाने और समाप्त करने वाले कर्सर के लिए एक निश्चित मात्रा में सेटअप और टियरडाउन होता है जो ओवरहेड बना देगा।
- यदि आप इसे स्थानीय मशीन पर नहीं कर रहे हैं तो यह प्रत्येक अनुरोध के लिए tcp/ip ओवरहेड भी बनाता है। स्थानीय रूप से आप डोमेन सॉकेट का उपयोग कर सकते हैं।
- डिफ़ॉल्ट रूप से बनाई गई "_id" पर एक अनुक्रमणिका है और बैच अनुरोध में लौटने के लिए दस्तावेज़ों का एक समूह एकत्र करना बेहद तेज़ होना चाहिए, इसलिए इसे छोटे प्रश्नों में विभाजित करने की कोई आवश्यकता नहीं है।
अगर आप इसे देखना चाहते हैं तो यहां कुछ अतिरिक्त दस्तावेज हैं।