Đố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" ] } ]