Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb-将日期时间转换为ISOdate格式_Mongodb - Fatal编程技术网

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

Mongodb-将日期时间转换为ISOdate格式,mongodb,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 = c

我想将现有的字符串日期转换为新的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}}
   ) 
}
只需使用新的ISODate():

在您的完整示例中:

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

谢谢,有了上面的内容,我可以用分隔符-更新日期。我无法更新日期,如“2013/01/10 12:22:22 AM”。请注意,您也可以在mongodb请求中使用js日期类型(它将转换为ISODate)。新日期(“2013/01/10 12:22:22 AM”)将生效。新日期将转换日期,但将转换为默认日期1970-01-01:00:00。没有真正帮助我。我得到了错误,ISODate没有定义!我需要下载什么吗?
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)}}
   ) 
}