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)}}
    ) 
};
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值