我执行了以下查询,
db.SBM_USER_DETAIL.aggregate([
{
$project: {
join_date: moment('$JOIN_DATE').locale('es').tz("Asia/Kolkata").format()
}
}
])
但结果是,
“日期无效”
它存储在mongo db中的值为“” JOIN_DATE“:ISODate(”2017-01-30T18:30:00.000Z“)”
为什么它会成为“无效日期”?
我不知道我的错误,请帮助我。
答案 0 :(得分:1)
聚合管道无法直接处理任意javascript。在您的示例中,在替换文档字段之前,shell会调用moment
函数,因此该值无效。
要在每个文档中应用javascript函数字段,请使用.map
,如下所示:
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
})