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

आईडी की सूची को देखते हुए, संग्रह में कौन सी आईडी मौजूद नहीं है, यह पूछने का सबसे अच्छा तरीका क्या है?

मुझे लगता है कि आपके संग्रह में निम्नलिखित दस्तावेज़ हैं:

{ "_id" : ObjectId("55b725fd7279ca22edb618bb"), "id" : 1 }
{ "_id" : ObjectId("55b725fd7279ca22edb618bc"), "id" : 2 }
{ "_id" : ObjectId("55b725fd7279ca22edb618bd"), "id" : 3 }
{ "_id" : ObjectId("55b725fd7279ca22edb618be"), "id" : 4 }
{ "_id" : ObjectId("55b725fd7279ca22edb618bf"), "id" : 5 }
{ "_id" : ObjectId("55b725fd7279ca22edb618c0"), "id" : 6 }

और id . की निम्न सूची

var listId = [ 1, 3, 7, 9, 8, 35 ];

हम .filter . का उपयोग कर सकते हैं ids . की सरणी वापस करने की विधि जो आपके संग्रह में नहीं है।

var result = listId.filter(function(el){
    return db.collection.distinct('id').indexOf(el) == -1; });

यह पैदावार

[ 7, 9, 8, 35 ] 

अब आप एकत्रीकरण ढांचे . का भी उपयोग कर सकते हैं और $setDifference ऑपरेटर।

db.collection.aggregate([
   { "$group": { "_id": null, "ids": { "$addToSet": "$id" }}}, 
   { "$project" : { "missingIds": { "$setDifference": [ listId, "$ids" ]}, "_id": 0 }}
])

यह पैदावार:

{ "missingIds" : [ 7, 9, 8, 35 ] }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में पूर्ण-पाठ खोज कैसे करें

  2. सरणी तत्वों के लिए एकाधिक मानदंड निर्दिष्ट करें

  3. Mongodb PHP - दशमलव के साथ पूर्णांक

  4. Mongodb _id फ़ील्ड के बिना दस्तावेज़ सम्मिलित करना

  5. मोंगोडब में अंतिम एन रिकॉर्ड कैसे प्राप्त करें?