我将我的ISODate作为ISODate放在mongo中,我希望以字符串格式使用特定的日期时间格式。
这是ISODate:
ISODate("2020-04-24T11:41:47.280Z")
预期结果:
"2020-04-24T11:41:47.280Z"
我希望在mongodb上发生这种情况,因为我的许多服务都期望采用这种格式,而且我不想在所有服务中进行更改,因为这是一项繁琐的工作。
答案 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)
我假设你需要的是dateToString函数 https://docs.mongodb.com/manual/reference/operator/aggregation/dateToString/