我希望能够设置一个日期范围,然后只检索每个月的最后一条记录。
我知道该怎么做,但需要超越你们这些在这方面比我聪明得多的人。
我想我会做一个$组,其中包括"local_date_time"中的month
和year
编号。然后我将通过year
、month
和local_date_time
来$sort
,然后在下一阶段,$project
仅为每个记录$last
。
这是最好的方法吗?还是有更清洁、更有效的方法?谢谢,Matt
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。。
我刚刚和CCD_ 10核实过,你可以随意更改字段。。!
希望,这将在某种程度上帮助你。。!