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