इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं:
[
{
id: "101",
subjectid: [
"102"
]
},
{
id: "102",
subjectid: [
"102"
]
}
]
सभी दस्तावेज़ देखने के लिए:
db.collection.find()
आउटपुट:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
},
{
"_id": ObjectId("5a934e000102030405000001"),
"id": "102",
"subjectid": [
"102"
]
}
]
मिलान करने वाले सरणी मान को बाहर करने की क्वेरी
$expr, $not और $in का उपयोग करके उन दस्तावेज़ों को प्राप्त करें जहां id मान subjectid सरणी में मौजूद नहीं है:
db.collection.find({
$expr: {
$not:{
$in: [
"$id",
"$subjectid"
]
}
}
})
परिणाम:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
}
]
व्याख्या: यह क्वेरी केवल वही दस्तावेज़ लौटाती है जहां id मान subjectid सरणी में नहीं पाया जाता है।