Mongodb聚合日期范围,用于检索每个月的最后一条记录

时间:2016-07-31 10:15:27

标签: mongodb aggregation-framework

我希望能够设置日期范围,然后只检索每个月的最后一条记录。

我知道如何做到这一点,但需要经过那些比我更聪明的人。

我想我会做一个$ group,其中包含'local_date_time'中的monthyear号码。然后我会$sort yearmonth然后local_date_time,然后在下一阶段,$project只有每个$last记录。

这是最好的方法吗?还是有更清洁更有效的方法呢?谢谢,马特

1 个答案:

答案 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核实过, 你可以改变字段..!

希望,这会以某种方式帮助你......!