【发布时间】:2019-02-14 08:15:05
【问题描述】:
我有以下架构:
_id
dates :
date :
year
month
day
other unrelated fields
我已经对每个 _id 进行了分组,以便日期包含多个日期对象(其中包含年、月、日)。我现在想按年和月对每个日期对象进行分组,以便获得与年和月相对应的日期数。例如,如果我有以下文件:
_id : 124567789554
dates :
date :
year : 2018
month : 9
day : 1
date :
year : 2018
month : 9
day : 2
date :
year : 2018
month : 9
day : 3
date :
year : 2018
month : 10
day : 1
我想要的输出是:
_id : 124567789554
dates :
date :
year : 2018
month : 9
count : 3
date :
year : 2018
month : 10
count : 1
我该怎么做?
编辑:对于一些额外的上下文,我首先必须按 personId 分组。最初的架构如下所示:
_Id (automatically generated by mongoDB)
personId
date
有多个相同personId的行,对应一个日期。我必须首先将_Id = personId 分组,然后将日期聚合在一起。我怎样才能同时做这两个?我当前的查询:
{
_id: "$personId",
dates: {
$addToSet: "$date"
},
other unrelated fields
}
【问题讨论】:
标签: mongodb nosql mongodb-query aggregation-framework nosql-aggregation