2013-02-27 24 views
35

की सूची के माध्यम लगता है मैं एक प्रक्रिया है कि स्ट्रिंग MongoDB आईडी की एक सूची देता है,मोंगो, आईडी

[512d5793abb900bf3e20d012, 512d5793abb900bf3e20d011] 

और मैं मोंगो के लिए एक एकल क्वेरी आग और मिलान दस्तावेजों उसी क्रम में वापस पाने के लिए करना चाहते हैं सूची के रूप में।

ऐसा करने के लिए खोल नोटेशन क्या है?

उत्तर

57

ऑब्जेक्ट आईडी में तारों को परिवर्तित करने के बाद, आप सूची में दस्तावेज़ प्राप्त करने के लिए $in ऑपरेटर का उपयोग कर सकते हैं। आपकी सूची के क्रम में दस्तावेज़ों को वापस पाने के लिए कोई प्रश्न नहीं है, लेकिन इसे संभालने के कुछ तरीकों के लिए here देखें।

var ids = ['512d5793abb900bf3e20d012', '512d5793abb900bf3e20d011']; 
var obj_ids = ids.map(function(id) { return ObjectId(id); }); 
db.test.find({_id: {$in: obj_ids}}); 
0

यदि आपका अंतिम उद्देश्य दस्तावेज़ को आपके पूर्व-प्राप्त आईडी सूची द्वारा ऑर्डर के साथ प्राप्त करना है, तो आप क्वेरी परिणाम को मैपिंग (आईडी के रूप में आईडी, मूल्य के रूप में आईडी) में परिवर्तित कर सकते हैं, और उसके बाद आईडी सूची को पार कर सकते हैं डॉक्टर प्राप्त करें।

+0

मैं क्वेरी के बाद हूं जो परिणाम वापस कर देगा ...? कोड उदाहरण की सराहना की जाएगी। – Will

संबंधित मुद्दे