How to Convert mongodb ISODate to string in mongoDB?

我只是一个虾纸丫 提交于 2020-01-02 03:26:45

问题


I have my ISODate in mongo as ISODate and I want to just that in string format with a specific datetime format.

Here is the ISODate:

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

Expected Result:

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

I want this to be happened on mongodb only as many of my services are expecting in this format, and I don't want to make changes in all services as its a tedious job.


回答1:


I got the expected result while i was trying the following.

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

This will give me back the string

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



回答2:


perhaps simply convert a date into string? this has less to do with mongo than js. moment is awesome but unusable in a mongo shell script.

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} );
})



回答3:


I assume that what you need is the dateToString function https://docs.mongodb.com/manual/reference/operator/aggregation/dateToString/




回答4:


I just came across this issue. There isn't anything built into ISODate turns out. So I'm converting the ISODate to JSON text, and then I do a substring to get the part I want. You can also use method on ISODate to get year, month, date separately and then combine them.

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


来源:https://stackoverflow.com/questions/27560366/how-to-convert-mongodb-isodate-to-string-in-mongodb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!