Mongodb - 将日期时间转换为ISOdate格式

时间:2017-09-13 21:05:18

标签: mongodb

我想将现有的字符串日期转换为新的ISO日期格式。我使用了一些脚本,但它们不足以转换与日期相关的时间。例如:2013-01-10 12:22:22 AM转换为ISODate(“2013-01-10T06:00:00Z”)。这里的时间不是转换。请帮忙。

var cursor = db.customer.find({"created_at": {"$exists": true, "$type": 2 }}); 
while (cursor.hasNext()) { 
      var doc = cursor.next(); 
      var parts = doc.created_at.split("-");
      var dt = new Date(
            parseInt(parts[0], 10), // year
            parseInt(parts[1], 10) - 1, // month
            parseInt(parts[2], 10)// day

        );
   db.customer.update(
    {"_id": doc._id}, 
    {"$set": {"created_at": dt}}
   ) 
}

1 个答案:

答案 0 :(得分:0)

只需使用新的ISODate():

new ISODate("2013-01-10 12:22:22 AM ")
ISODate("2013-01-10T12:22:22Z")

在您的完整示例中:

var cursor = db.customer.find({"created_at": {"$exists": true, "$type": 2 }}); 
while (cursor.hasNext()) { 
   var doc = cursor.next(); 
   db.customer.update(
    {"_id": doc._id}, 
    {"$set": {"created_at": new ISODate(doc.created_at)}}
   ) 
}