Computer >> Máy Tính >  >> Lập trình >> MongoDB

Truy vấn MongoDB để loại trừ cả hai trường có FALSE

Sử dụng toán tử $ hoặc cùng với toán tử $ expr cho việc này. Đầu tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu, trong đó một trong các trường là isMarried có giá trị true của false -

> db.orTwoFieldsDemo.insertOne({"isLiveInUS":true,"isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd86abf3115999ed5120d")
}
> db.orTwoFieldsDemo.insertOne({"isLiveInUS":true,"isMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd876bf3115999ed5120e")
}
> db.orTwoFieldsDemo.insertOne({"isLiveInUS":false,"isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd87dbf3115999ed5120f")
}

Sau đây là truy vấn để 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.orTwoFieldsDemo.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
{ "_id" : ObjectId("5cdfd87dbf3115999ed5120f"), "isLiveInUS" : false, "isMarried" : false }

Sau đây là truy vấn để tránh cả hai giá trị FALSE trong hai trường và chỉ hiển thị các trường có TRUE hoặc một trong các trường có TRUE hoặc một trường khác FALSE ngược lại -

> db.orTwoFieldsDemo.find({ $expr: { $or: [ "$isLiveInUS", "$isMarried" ] } });

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }