MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मूंगोज़ कुल $मिलान आईडी से मेल नहीं खाता

आपका ids वेरिएबल "स्ट्रिंग्स" का निर्माण किया जाएगा, न कि ObjectId मान।

ObjectId . के लिए नेवला "ऑटोकास्ट" स्ट्रिंग मान नियमित प्रश्नों में उनके सही प्रकार में, लेकिन यह समेकन पाइपलाइन में नहीं होता है, जैसा कि अंक #1399 में वर्णित है।

इसके बजाय आपको मैन्युअल रूप से टाइप करने के लिए सही कास्टिंग करनी होगी:

ids = ids.map(function(el) { return mongoose.Types.ObjectId(el) })

फिर आप उन्हें अपने पाइपलाइन चरण में उपयोग कर सकते हैं:

{ "$match": { "_id": { "$in": ids } } }

इसका कारण यह है कि एकत्रीकरण पाइपलाइन "आमतौर पर" दस्तावेज़ संरचना को बदल देती है, और इसलिए नेवला कोई अनुमान नहीं लगाता है कि "स्कीमा" किसी भी पाइपलाइन चरण में दस्तावेज़ पर लागू होती है।

यह तर्कपूर्ण है कि "पहला" पाइपलाइन चरण जब यह एक $match . है मंच को ऐसा करना चाहिए, क्योंकि वास्तव में दस्तावेज़ में कोई बदलाव नहीं किया गया है। लेकिन अभी ऐसा नहीं होता है।

कोई भी मान जो संभवतः "स्ट्रिंग्स" हो सकता है या कम से कम सही बीएसओएन प्रकार नहीं है, मिलान करने के लिए मैन्युअल रूप से डालने की आवश्यकता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी डिलीटऑन ()

  2. फ़ाइल आयात करके MongoDB दस्तावेज़ कैसे हटाएं

  3. मोंगोडब कॉनकैट इंट और स्ट्रिंग

  4. AdminBro, एक्सप्रेस, mongoDB, mongoose के साथ पाँच मिनट में एक व्यवस्थापक क्षेत्र बनाना

  5. EC2 सर्वर पर MongoDB http इंटरफ़ेस से दूरस्थ रूप से कनेक्ट करना