2017-05-06 67 views
-1

我已经执行了下面的查询,无效的日期使用瞬间

db.SBM_USER_DETAIL.aggregate([ 

    { 
     $project: { 
      join_date: moment('$JOIN_DATE').locale('es').tz("Asia/Kolkata").format() 
     } 
    } 
]) 

但结果是,

无效的日期

它存储在蒙戈值db is“”JOIN_DATE“:ISODate(”2017-01-30T18:30:00.000Z“)

为什么它的comin g作为“无效日期”?

我不知道我的错误,请帮助我。

+0

是乔,我周围使用单引号**“$ JOIN_DATE” ** – Jeyabalan

回答

1

聚合管道不能直接处理任意的javascript。在您的示例中,moment函数在文档字段被替换之前由shell调用,因此该值无效。

要申请一个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 
}) 
+0

真棒。它的工作很好,我期望的。非常感谢:) – Jeyabalan

+0

如何在聚合查询中使用返回值(join-date)? – Jeyabalan

+0

这真的取决于你想要做什么。评论真的没有足够的空间来解释,但如果你打开一个新的问题的细节,我很乐意看看。 – Joe