Nar*_*ula 3 mongoose mongodb aggregation-framework
我是新的 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)
$facet你可以用聚合来做到这一点$ifNull,这有点可笑
db.collection.aggregate([
{ "$facet": {
"array": [
{ "$match": { "type": "L", "lampStatus": "ON" }},
{ "$group": {
"_id": null,
"TotalLights": { "$sum": 1 }
}},
{ "$project": { "_id": 0, "TotalLights": 1 }}
]
}},
{ "$project": {
"TotalLights": {
"$ifNull": [{ "$arrayElemAt": ["$array.TotalLights", 0] }, 0 ]
}
}}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |