如何将mongodb ISODate转换为mongoDB中的字符串?

时间:2014-12-19 05:46:01

标签: mongodb mongodb-query

我将我的ISODate作为ISODate放在mongo中,我希望以字符串格式使用特定的日期时间格式。

这是ISODate:

ISODate("2020-04-24T11:41:47.280Z")

预期结果:

"2020-04-24T11:41:47.280Z"

我希望在mongodb上发生这种情况,因为我的许多服务都期望采用这种格式,而且我不想在所有服务中进行更改,因为这是一项繁琐的工作。

4 个答案:

答案 0 :(得分:10)

我在尝试以下时获得了预期的结果。

ISODate("2020-04-24T11:41:47.280Z").toJSON()

这会给我回字符串

"2020-04-24T11:41:47.280Z"

答案 1 :(得分:1)

或许只是简单地将日期转换为字符串?这与mongo的关系不如js。时刻很棒但在mongo shell脚本中无法使用。

db.events.find().forEach(function(doc) {     
   //   printjson ("Document is " + doc);    
   var isoDate = doc.t;   // t is correct key?     
   var isoString = isoDate.toISOString()    
   // update the collection with string using a new key    
   db.events.update({"_id":doc._id},{$set:{"iso_str":isoString} );
   // or overwrite using 't' key      db.events.update({"_id":doc._id},{$set:{"t":isoString} );
})

答案 2 :(得分:0)

我刚刚遇到过这个问题。 ISODate没有内置任何东西。所以我将ISODate转换为JSON文本,然后我做一个子字符串来获取我想要的部分。您还可以使用ISODate上的方法分别获取年,月,日,然后将它们组合起来。

function formatDate(isoDate){
    return isoDate.toJSON().substr(9, 20);
}

答案 3 :(得分:0)