Mongo DB ISO格式

时间:2017-05-13 05:10:19

标签: mongodb aggregation-framework

根据以下查询返回结果,我想过滤月份和年份。

例如,我只想要3月份的数据。

db.SBM_USER_DETAIL.aggregate([
{
    $project: {
        join_date: '$JOIN_DATE' 
    }
}
]).map(
    function(d) {
       d.join_date = moment(d.join_date).locale('es').tz("Asia/Kolkata").format();
       return d
})

如何在MongoDB聚合查询中使用返回的 join_date 格式化值?

1 个答案:

答案 0 :(得分:0)

MongoDB的ISODate与javascript Date类非常相似。如果您在加尔各答时区中有一个日期范围,并希望按此过滤,请在运行查找之前实例化一对Date对象以定义范围。

对于此实例,要返回2017年3月内转换为加尔各答(UTC-07:00)时区的所有join_date值,请过滤大于或等于3月1日午夜且低于午夜的日期4月1日,然后使用时刻转换结果:

var first = new Date("2017-03-01T00:00:00-07:00");
var last = new Date("2017-04-01T00:00:00-07:00");
db.SBM_USER_DETAIL.find(
    {join_date:{$gte: first, $lt: last}}, //filter based on join_date
    {join_date:1,_id:0}   // only return join_date, omit this if you need all fields
).map(
    function(d) {
        d.join_date = moment(d.join_date).locale('es').tz("Asia/Kolkata").format();
        return d;
    }
);
相关问题