Đối với điều này, hãy sử dụng $ không cùng với $ in. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
[
{
id: "101",
subjectid: [
"102"
]
},
{
id: "102",
subjectid: [
"102"
]
}
] Đây là ảnh chụp nhanh.
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
db.collection.find()
Điều này sẽ tạo ra kết quả sau -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
},
{
"_id": ObjectId("5a934e000102030405000001"),
"id": "102",
"subjectid": [
"102"
]
}
] Sau đây là truy vấn sử dụng $ expr, $ not và $ in để tìm nạp các giá trị ngoại trừ giá trị mảng trường phù hợp -
db.collection.find({
$expr: {
$not:{
$in: [
"$id",
"$subjectid"
]
}
}
}) Điều này sẽ tạo ra kết quả sau -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
}
]