繁体   English   中英

如何按日期总结两个不同的嵌套列表(Mongodb聚合)

[英]How to sum up two different nested lists by date (Mongodb aggregation)

我有一个对象列表,每个对象都有两个列表,如下所示:

[
  {
    "name": "market2",
    "materialCosts": [
      {
        "date": "2022-02-12",
        "amount": "1234.11"
      },
      {
        "date": "2022-02-15",
        "amount": "1234.11"
      }
    ],
    "laborCosts": [
      {
        "date": "2022-02-12",
        "amount": "12.11"
      },
      {
        "date": "2022-02-15",
        "amount": "45.11"
      }
    ]
  },
  {
    "name": "market1",
    "materialCosts": [
      {
        "date": "2022-02-12",
        "amount": "1234.11"
      },
      {
        "date": "2022-02-15",
        "amount": "1234.11"
      }
    ],
    "laborCosts": [
      {
        "date": "2022-02-12",
        "amount": "12.11"
      },
      {
        "date": "2022-02-15",
        "amount": "45.11"
      }
    ]
  }
]

是否有可能使用 mongodb 聚合框架按日期对所有成本进行分组,无论它们是材料成本还是人工成本,最终得到以下结果:

[
  {
    "date": "2022-02-12",
    "amount": "1234.11"
  },
  {
    "date": "2022-02-15",
    "amount": "1234.11"
  }
]

询问

  • 连接两个 arrays
  • 放松
  • 按日期和总和分组

玩蒙哥

aggregate(
[{"$project": 
   {"costs": {"$concatArrays": ["$materialCosts", "$laborCosts"]}}},
 {"$unwind": "$costs"},
 {"$group": 
   {"_id": "$costs.date", "sum": {"$sum": {"$toDouble": "$costs.amount"}}}}])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM