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

Tìm tài liệu MongoDB dựa trên giá trị true/false

Để truy vấn dựa trên trường boolean, có thể so sánh trực tiếp giá trị true/false hoặc dùng $exists để kiểm tra sự tồn tại của trường con.

Tạo collection với trường boolean và mảng đối tượng:

> db.demo367.insertOne({
  "Id" : "102",
  "details" : [ { "Name" : "David"}, { "Age" : 23, "CountryName" : "UK"} ],
  "isMarried" : false
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0b62ae06a1609a00ae8") }
> db.demo367.insertOne({
  "Id" : "101",
  "details" : [ { "Name" : "Chris", "Subject" : [ "MySQL" ] }, { "Age" : 21, "CountryName" : "US"} ],
  "isMarried" : true
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0be2ae06a1609a00ae9") }

Xem dữ liệu:

> db.demo367.find();
{
  "_id" : ObjectId("5e57e0b62ae06a1609a00ae8"),
  "Id" : "102",
  "details" : [ { "Name" : "David" }, { "Age" : 23, "CountryName" : "UK" } ],
  "isMarried" : false
}
{
  "_id" : ObjectId("5e57e0be2ae06a1609a00ae9"),
  "Id" : "101",
  "details" : [ { "Name" : "Chris", "Subject" : [ "MySQL" ] }, { "Age" : 21, "CountryName" : "US" } ],
  "isMarried" : true
}

Tìm tài liệu KHÔNG có trường details.Subject (sử dụng $exists: false):

> db.demo367.find({"details.Subject": { $exists: false}});

Kết quả (chỉ tài liệu Id=102):

{ "_id" : ObjectId("5e57e0b62ae06a1609a00ae8"), "Id" : "102", "details" : [ { "Name" : "David" }, { "Age" : 23, "CountryName" : "UK" } ], "isMarried" : false }

Các cách truy vấn boolean:

  • {isMarried: true} - tìm true
  • {isMarried: false} - tìm false
  • {isMarried: {$exists: true}} - trường tồn tại
  • {isMarried: {$exists: false}} - trường không tồn tại