我希望能够设置日期范围,然后只检索每个月的最后一条记录。
我知道如何做到这一点,但需要经过那些比我更聪明的人。
我想我会做一个$ group,其中包含'local_date_time'中的month
和year
号码。然后我会$sort
year
,month
然后local_date_time
,然后在下一阶段,$project
只有每个$last
记录。
这是最好的方法吗?还是有更清洁更有效的方法呢?谢谢,马特
答案 0 :(得分:0)
db.users.aggregate({
$match: {
'createdDate': {
$gte: new Date('2015'+'-01-01T00:00:00.000+0530'),
$lte: new Date('2015'+'-12-31T23:59:59.000+0530')
}
},
},{
$group:{
_id : { month: { $month: '$createdDate' }},
lastUserEmail: { $last: "$email" }
}
});
$last
:返回每个组的最后一个文档中的值,选中This..
我刚刚与createdDate
核实过,
你可以改变字段..!