2017-05-06 64 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