Để truy vấn các document mà trường boolean không phải là true (tức là false hoặc không tồn tại), bạn sử dụng toán tử $ne (not equal).
Cú pháp
db.yourCollectionName.find({yourFieldName: {$ne: true}}).pretty();
Ví dụ minh họa
Tạo collection và dữ liệu
> db.queryForBooleanFieldsDemo.insertOne({"EmployeeName":"Larry","EmployeeAge":24,"isOldEmployee":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8b7f7680f10143d8431e13") }
> db.queryForBooleanFieldsDemo.insertOne({"EmployeeName":"Mike","EmployeeAge":20,"isOldEmployee":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8b7f8680f10143d8431e14") }
> db.queryForBooleanFieldsDemo.insertOne({"EmployeeName":"Sam","EmployeeAge":23,"isOldEmployee":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8b7f9380f10143d8431e15") }
> db.queryForBooleanFieldsDemo.insertOne({"EmployeeName":"David","EmployeeAge":25,"isOldEmployee":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8b7fa280f10143d8431e16") }
> db.queryForBooleanFieldsDemo.insertOne({"EmployeeName":"Carol","EmployeeAge":27,"isOldEmployee":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8b7fae80f10143d8431e17") }
Xem tất cả documents
> db.queryForBooleanFieldsDemo.find().pretty();
{
"_id" : ObjectId("5c8b7f7680f10143d8431e13"),
"EmployeeName" : "Larry",
"EmployeeAge" : 24,
"isOldEmployee" : true
}
{
"_id" : ObjectId("5c8b7f8680f10143d8431e14"),
"EmployeeName" : "Mike",
"EmployeeAge" : 20,
"isOldEmployee" : false
}
{
"_id" : ObjectId("5c8b7f9380f10143d8431e15"),
"EmployeeName" : "Sam",
"EmployeeAge" : 23,
"isOldEmployee" : false
}
{
"_id" : ObjectId("5c8b7fa280f10143d8431e16"),
"EmployeeName" : "David",
"EmployeeAge" : 25,
"isOldEmployee" : true
}
{
"_id" : ObjectId("5c8b7fae80f10143d8431e17"),
"EmployeeName" : "Carol",
"EmployeeAge" : 27,
"isOldEmployee" : true
}
Truy vấn trường boolean không phải true
> db.queryForBooleanFieldsDemo.find({isOldEmployee: {$ne: true}}).pretty();
{
"_id" : ObjectId("5c8b7f8680f10143d8431e14"),
"EmployeeName" : "Mike",
"EmployeeAge" : 20,
"isOldEmployee" : false
}
{
"_id" : ObjectId("5c8b7f9380f10143d8431e15"),
"EmployeeName" : "Sam",
"EmployeeAge" : 23,
"isOldEmployee" : false
}
Giải thích
Toán tử $ne: true sẽ trả về các document mà:
- Trường có giá trị
false - Trường không tồn tại (missing field)
- Trường có giá trị
null
Lưu ý: Nếu bạn chỉ muốn tìm các document có trường tồn tại và giá trị là
false (loại trừ null và missing), hãy dùng: { isOldEmployee: false } hoặc { isOldEmployee: { $eq: false } }.