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

मोंगोडब में $in ऑपरेटर के साथ मिलान किए गए सरणी तत्व की अनुक्रमणिका जानें?

तो मान लें कि हमारे पास डेटाबेस संग्रह में निम्नलिखित हैं:

> db.couponmodel.find()
{ "_id" : "a" }
{ "_id" : "b" }
{ "_id" : "c" }
{ "_id" : "d" }

और हम संग्रहों में निम्नलिखित आईडी खोजना चाहते हैं

var coupons_ids = ["c", "a" ,"z"];

फिर हमें एक डायनामिक प्रोजेक्शन स्टेट बनाना होगा ताकि हम सही इंडेक्स को प्रोजेक्ट कर सकें, इसलिए हमें प्रत्येक आईडी को उसके संबंधित इंडेक्स में मैप करना होगा

var conditions = coupons_ids.map(function(value, index){
    return { $cond: { if: { $eq: ['$_id', value] }, then: index, else: -1 } };
});

फिर हम इसे अपनी एग्रीगेशन पाइपलाइन में इंजेक्ट कर सकते हैं

db.couponmodel.aggregate([
    { $match : { '_id' : { $in : coupons_ids } } },
    { $project: { indexes : conditions } },
    { $project: {
        index : {
            $filter: { 
                input: "$indexes", as: "indexes", cond: { $ne: [ "$$indexes", -1 ] }
                }
            }
        } 
    },
    { $unwind: '$index' }
]);

उपरोक्त को चलाने से अब coupons_ids के भीतर प्रत्येक _id और उसकी संगत अनुक्रमणिका आउटपुट होगी सरणी

{ "_id" : "a", "index" : 1 }
{ "_id" : "c", "index" : 0 }

हालाँकि हम अंत में पाइपलाइन में और आइटम भी जोड़ सकते हैं और संदर्भ $index वर्तमान मिलान सूचकांक प्राप्त करने के लिए।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB का उपयोग करके किसी फ़ील्ड में मानों की संख्या सीमित करें

  2. Laravel ऐप xampp या लाइव सर्वर पर नहीं चल रहा है लेकिन PHP कारीगर सर्व पर अच्छा काम करता है

  3. शर्त के साथ समूह और गिनती

  4. क्या MongoDb के WiredTiger में MMAPv1 के रूप में पुनः आबंटन का प्रदर्शन समस्या है?

  5. Azure पर सबसे तेज़ MongoDB!