Mongo String类型日期转ISODate类型

在mysql数据库导出的csv文件里的数据导入到mongodb数据库中,
发现日期数据是String,想要专为mongo的ISODate,方便以后的关于时间的查询。

以users表为例

方法一:少量数据(经验低于1万条)

因为是转化所有数据,如果数据有几十万,极大可能超过执行的时间而中断,导致有的时间转了有的没转。我就遇到这种情况后,继续用第二种方法,将剩下的继续转化

db.users.find({created_time:{$exists:true,$type:2}}).forEach(function(doc){
	doc.created_time=new Date(doc.created_time);
	db.users.save(doc);
});

方法二:多一点量数据(经验5万条约用时约30秒)

var cursor=db.getCollection('users').find({"created_time":{$exists:true,$type:2}}).limit(50000);
//限制一次5万条,否则也可能要很久而卡死中断
while (cursor.hasNext()) { 
    var doc = cursor.next(); 
    db.users.update(
        {"_id" : doc._id}, 
        {"$set" : {"created_time" : new Date(doc.created_time)}}
    ) 
};
发布了22 篇原创文章 · 获赞 0 · 访问量 2229

猜你喜欢

转载自blog.csdn.net/weixin_44156518/article/details/104066075