MongoDB 查詢同時排除包含 FALSE 的欄位
為此,使用 $or 運算子以及 $expr 運算子。我們首先建立一個包含文件的集合,其中一個欄位 isMarried 具有 true 或 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")
}以下查詢使用 find() 方法顯示集合中的所有文件 −
> db.orTwoFieldsDemo.find();
這將產生以下輸出 −
{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
{ "_id" : ObjectId("5cdfd87dbf3115999ed5120f"), "isLiveInUS" : false, "isMarried" : false }以下查詢避免兩個欄位中的 FALSE 值,僅顯示 TRUE 欄位或某個欄位為 TRUE 或另個欄位為 FALSE,反之亦然 −
> db.orTwoFieldsDemo.find({ $expr: { $or: [ "$isLiveInUS", "$isMarried" ] } });這將產生以下輸出 −
{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP