【发布时间】:2019-02-11 13:55:33
【问题描述】:
我有以下 mongo DB 架构:
{
"_id" : "5b76c3c037548390fdb5b40e",
"userId" : "4601",
"modified" : ISODate("2018-08-21T19:13:43.301+05:30"),
"rStatus" : "started",
},
{
"_id" : "5b76c3c037548390fdb5b40e",
"userId" : "13",
"modified" : ISODate("2018-08-21T19:13:43.301+05:30"),
"rStatus" : "completed",
},
........
需要通过rStatus字段的修改日期和计数来获取数据组,例如
{
modified:"2018-08-21",
count :{"completed":1,"ongoing":4}
},
{
modified:"2018-07-23",
count :{"completed":2,"ongoing":5}
},
我正在使用 $group,但它仅按修改日期计算,而不是按内部键的值。
【问题讨论】:
-
这可能是答案
db.collection.aggregate([ { "$group": { "_id": { "$dateToString": { "date": "$modified", "format": "%Y-%m-%d" }}, "completed": { "$sum": { "$cond": [{ "$eq": [ "$rStatus", "completed" ] }, 1, 0 ] }} }} ]) -
@AnthonyWinzlet,谢谢,它的工作
标签: mongodb mongoose nosql mongodb-query nosql-aggregation