MongoDB-এ যদি কোনো ডকুমেন্টের id ফিল্ডের মান তার নিজস্ব subjectid অ্যারেতে থাকে, তবে সেই ডকুমেন্ট বাদ দিতে $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: "101"অ্যারে["102"]-এ নেই → রিটার্ন হয়েছে - দ্বিতীয় ডকুমেন্ট:
id: "102"অ্যারে["102"]-এ আছে → বাদ পড়েছে
ব্যবহার ক্ষেত্র: এটি সেলফ-রেফারেন্স বা সাইক্লিক রেফারেন্স পরীক্ষা করার জন্য উপযোগী।