Để kiểm tra giá trị không tồn tại, sử dụng toán tử $ne (not equal). Tạo collection:
> db.demo206.insertOne({
"ClientDetails": [
{ "Name":"Chris", "Age":28, "CountryName":"US" }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8bd403d395bdc21346ee") }
> db.demo206.insertOne({
"ClientDetails": [
{ "Name":"David", "Age":29, "CountryName":"UK" }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8bd403d395bdc21346ef") }
> db.demo206.insertOne({
"ClientDetails": [
{ "Name":"Bob", "Age":31, "CountryName":"US" }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8bd503d395bdc21346f0") }
Hiển thị tài liệu:
> db.demo206.find();
Tìm tài liệu KHÔNG có CountryName = "US":
> db.demo206.find({"ClientDetails.CountryName": {"$ne": "US"}});Kết quả - chỉ trả về David (UK):
Lưu ý:
$netrên mảng khớp nếu ít nhất một phần tử không bằng giá trị. Nếu mảng có ["US", "UK"], nó vẫn khớp vì có "UK" != "US". Để yêu cầu TẤT CẢ phần tử != "US", dùng$not: {$elemMatch: {CountryName: "US"}}.