Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB kiểm tra giá trị cụ thể không tồn tại

Để 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 ý: $ne trê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"}}.