我有一个看起来像这样的集合:
{
"value" : "20",
"type" : "square",
"name" : "form1"
}
{
"value" : "24",
"type" : "circle",
"name" : "form2"
}
{
"value" : "12",
"type" : "square",
"name" : "form3"
}
Run Code Online (Sandbox Code Playgroud)
我想提取一个文档,name = form2所以我输入:
db.myCollec.find({"name":"form2"} , {"name":1, "type":1, "_id":0})
Run Code Online (Sandbox Code Playgroud)
结果是:
{ "name" : "form2", "type" : "circle" }
Run Code Online (Sandbox Code Playgroud)
现在,如果我想查找文档,name = form4请输入:
db.myCollec.find({"name":"form4"} , {"name":1, "type":1, "_id":0})
Run Code Online (Sandbox Code Playgroud)
但这不会返回任何内容,因为没有具有该名称的文档。
但是我希望返回值看起来像这样:
{ "name" : "form4", "type" : null }
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我是新的 Mongodb 开发人员,我写了 mongodb 聚合。我的字段 lampStatus : "OFF" 是 30 条记录,我使用 "{ $match: {lampStatus : "OFF"}}" 我得到了 30 条记录,但是 ' lampStatus : "OFF" '没有记录我获取了 0 条记录,但如何在上述聚合中获取零值。
db.collection.aggregate([
{ $match:{'type':'L'}},
{ $match: {lampStatus : "ON"}},
{ $group: { _id : null, TotalLights: { $sum: 1 } } },
{ $project: { _id: 0, TotalLights: 1 } }
])
Run Code Online (Sandbox Code Playgroud)
输出:在 0 毫秒内获取 0 条记录
expected outout:"TotalLights" : 0
Run Code Online (Sandbox Code Playgroud)