मुझे लगता है कि आपके संग्रह में निम्नलिखित दस्तावेज़ हैं:
{ "_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 ] }