[英]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"
}
]
询问
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.