使用MongoDB $exists 检查特定字段是否存在。如果文档中不存在该字段,则需要使用find()显示相同的文档。
让我们创建一个包含文档的集合-
> db.demo612.insertOne({id:1,"Info":[{Name:"Chris",Age:21},{Name:"David"}]});{
"acknowledged" : true, "insertedId" : ObjectId("5e987372f6b89257f5584d87")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo612.find().pretty();
这将产生以下输出-
{
"_id" : ObjectId("5e987372f6b89257f5584d87"),
"id" : 1,
"Info" : [
{
"Name" : "Chris",
"Age" : 21
},
{
"Name" : "David"
}
]
}以下是获取不包含特定字段的MongoDB文档的查询-
> db.demo612.aggregate({$unwind: "$Info"},
... {$match: {"Info.Age":{$exists: false}}},
... {$project: {"Info.Name": 1}})这将产生以下输出-
{ "_id" : ObjectId("5e987372f6b89257f5584d87"), "Info" : { "Name" : "David" } }