Node.js 如何在mongodb中按日期分组并获取计数?

Node.js 如何在mongodb中按日期分组并获取计数?,node.js,mongodb,aggregation-framework,Node.js,Mongodb,Aggregation Framework,我想根据日期对文档进行分组,并获取日期的计数。下面是我的汇总查询, 当我尝试这个查询时,它给出了日期的单独列表 { "$project": { "deliveryDate": { "$dateToString": { "format": "%Y-%m-%d", "date": "$deliveryDate&q

我想根据日期对文档进行分组,并获取日期的计数。下面是我的汇总查询, 当我尝试这个查询时,它给出了日期的单独列表

{
        "$project": {
          "deliveryDate": {
            "$dateToString": { "format": "%Y-%m-%d", "date": "$deliveryDate" }
          },
          "counts": {
            "$multiply": [
              { "$size": "$products" },
              {
                "$sum": 1
              }
            ]
          }
        }
      }
[
  {
    "deliveryDate": "13-03-2021",
    "count" : 33
  },
  {
    "deliveryDate": "15-03-2021",
    "count" : 13
  }
]
这是我下面的文件

[{
        "id": 1,
        "deliveryDate": "13-03-2021",
        "products": [{
                "name": "Milk",
                "qty": 3
            },
            {
                "name": "Egg",
                "qty": 10
            }
        ]
    },
    {
        "id": 2,
        "deliveryDate": "13-03-2021",
        "products": [{
                "name": "Milk",
                "qty": 5
            },
            {
                "name": "Egg",
                "qty": 15
            }
        ]
    },
    {
        "id": 3,
        "deliveryDate": "15-03-2021",
        "products": [{
                "name": "Milk",
                "qty": 3
            },
            {
                "name": "Egg",
                "qty": 10
            }
        ]
    }
]
我的预期输出基于日期,它应该在数组中添加
qty
,应该给出该日期的计数总和

{
        "$project": {
          "deliveryDate": {
            "$dateToString": { "format": "%Y-%m-%d", "date": "$deliveryDate" }
          },
          "counts": {
            "$multiply": [
              { "$size": "$products" },
              {
                "$sum": 1
              }
            ]
          }
        }
      }
[
  {
    "deliveryDate": "13-03-2021",
    "count" : 33
  },
  {
    "deliveryDate": "15-03-2021",
    "count" : 13
  }
]
logic==>根据日期获取所有文档并添加数量,计算计数 如果可能的话,可以使用mongodb查询本身 提前谢谢

  • $sum
    获取同一字段
    产品的
    数量的总和
  • $group
    deliveryDate
    并获取产品数量的总和

是的,它工作得很好,性能也很好