Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 未找到$匹配项时的$addFields_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

Mongodb 未找到$匹配项时的$addFields

Mongodb 未找到$匹配项时的$addFields,mongodb,mongoose,aggregation-framework,Mongodb,Mongoose,Aggregation Framework,我是新的Mongodb开发者我写了Mongodb聚合。我的一个字段lampStatus:OFF是30记录是否有Iam使用{$match:{lampStatus:OFF}}我有30条记录,但“lampStatus:OFF”没有记录,我获取了0条记录,但如何在上述聚合中获取零值 db.collection.aggregate([ { $match:{'type':'L'}}, { $match: {lampStatus : "

我是新的Mongodb开发者我写了Mongodb聚合。我的一个字段lampStatus:OFF是30记录是否有Iam使用{$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

您可以使用和聚合来执行此操作,这有点可笑

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 ]
    }
  }}
])

您可以使用和聚合来执行此操作,这有点可笑

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 ]
    }
  }}
])

一些聚合技巧可能在这里起作用,但如果您使用简单javascriptany可能在没有javascript any get output@Anthony Winzlet的情况下这样做会更好一些聚合技巧可能在这里起作用,但如果您使用简单javascriptany可能在没有javascript any get output@Anthony Winzlet的情况下这样做会更好