相关疑难解决方法(0)

如果没有找到结果,则返回 null 默认值

我有一个看起来像这样的集合:

{  
"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-query aggregation-framework

6
推荐指数
1
解决办法
6189
查看次数

当未找到 $match 时 $addFields

我是新的 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)

mongoose mongodb aggregation-framework

3
推荐指数
1
解决办法
1420
查看次数