【问题标题】:How to use sum with Mongodb aggregate如何将 sum 与 Mongodb 聚合一起使用
【发布时间】:2020-05-14 15:21:20
【问题描述】:

我在 mongoDB 中有如下日期。

[
  {
  condition: {
    test: [
           { ...},
           { ...},
           { ...}
           ]
  }
  },
  {
  condition: {
    test: [
           { ...},
           { ...}
           ]
  }
  },
  ...
]

我想得到测试的总和值。例如, ('the number of test' - 1) 并将它们相加。
在这种情况下,(3 - 1) + (2 - 1) = 3。如何使用 Mongodb 的一个聚合一次得出这个总和值?
非常感谢您阅读它。

【问题讨论】:

  • 再详细一点,你尝试过的会很棒。
  • 你能用有效的 json 数据更新问题吗?

标签: mongodb mongoose


【解决方案1】:
db.collectionName.aggregate([
  {
    $group:
      { _id: null,
        totalSize:
          { $sum:
              { $add:
                  [{ $size: "$test"},-1]
              }
          }
      }
  }
])

通过以下数据测试

/* 1 */
{
    "_id" : ObjectId("5e31333fab4013230264d786"),
    "condition" : "testCase1",
    "test" : [ 
        ISODate("2020-01-29T07:26:42.491Z"), 
        ISODate("2020-01-29T07:27:42.491Z")
    ]
}

/* 2 */
{
    "_id" : ObjectId("5e313346ab4013230264d787"),
    "condition" : "testCase2",
    "test" : [ 
        ISODate("2020-01-29T07:25:42.491Z"), 
        ISODate("2020-01-29T07:24:42.491Z"), 
        ISODate("2020-01-29T07:23:42.491Z")
   ]
}

输出:

{
  "_id" : null,
  "totalSize" : 3.0
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多