根据以下查询返回结果,我想过滤月份和年份。
例如,我只想要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 格式化值?
答案 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;
}
);