gpt4 book ai didi

mongodb - 找不到 $match 时 $addFields

转载 作者:行者123 更新时间:2023-12-02 20:17:35 25 4
gpt4 key购买 nike

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




])

输出:在 0 毫秒内获取了 0 条记录

expected outout:"TotalLights" : 0

最佳答案

你可以用 $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 ]
}
}}
])

关于mongodb - 找不到 $match 时 $addFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071636/

25 4 0
文章推荐: html - 如何在具有透明背景的 Three.js Canvas 上绘制
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com