[英]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.