簡體   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