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
是的,它工作得很好,性能也很好