从mongodb数据库获取值的总和

从mongodb数据库获取值的总和,mongodb,Mongodb,这是我在传感器集合中的文档 sensorId:1 sensorType:1 BuildingId:1 CalcItems: 0: Object Ts:2019-08-30T18:30:00.000+00:00 Value:1 1:Object Ts:2019-08-31T19:00:00.000+00:00 Value:2 我需要得到关于相同Ts日期值的所有值属性的总和 像这样输出 sensorType:1 Bui

这是我在传感器集合中的文档

sensorId:1
sensorType:1
BuildingId:1
CalcItems:
    0: Object
        Ts:2019-08-30T18:30:00.000+00:00
        Value:1
    1:Object
        Ts:2019-08-31T19:00:00.000+00:00
        Value:2
我需要得到关于相同Ts日期值的所有值属性的总和

像这样输出

sensorType:1
BuildingId:1
CalcItems:
    0: Object
        Ts:2019-08-31T18:30:00.000+00:00
        Value:23
    1:Object
        Ts:2019-08-31T19:00:00.000+00:00
        Value:43
给我一些建议试试这个

参考文献


是否也需要按
sensorType
BuildingId
&ts进行分组?似乎同一个传感器和建筑有不同的对象+值,即使在同一天,因为它们被时间分开@斯里尼瓦西,这一天应该改变,我改正了。在一座建筑物中有不同的传感器,也有许多建筑物。我需要得到每天一栋建筑中一种传感器类型的值的总和。非常感谢您的回复,计算工作非常完美。你能告诉我如何在数组中插入每个日期(Ts)的值之和吗?因为当我们进行项目时,会生成两个文档,而不是插入到同一个数组中。你能帮个忙吗?你能把结果和样本数据贴在这里吗样本数据和结果试试这个答案效果很好谢谢你帮了我很大的忙谢谢
[
  {
    "$unwind": "$CalcItems"
  },
  {
    $group: {
      _id: {
        "sensorType": "$sensorType",
        "BuildingId": "$BuildingId",
        "Ts": "$CalcItems.Ts"
      },
      "total": {
        "$sum": "$CalcItems.Value"
      }
    }
  },
  {
    "$project": {
      "_id": 0,
      "sensorType": "$_id.sensorType",
      "BuildingIdVal": "$_id.BuildingId",
      "CalcItems.Ts": "$_id.Ts",
      "CalcItems.Value": "$total"
    }
  }
]