将string更新为mongodb中的Date对象
我正在研究mongodb和node.js,并且发现了一个场景。
我大量插入大约2亿条logging的数据。 在那些有一些字段保存为string,但实际上是date。
有什么办法可以让我做点什么吗?
db.collection.update({}, {$set: {dateField: new Date(dateField)}}, { multi: true })
其中date是YYYY-MM-DD
格式
MongoDB中目前没有允许您在更新操作中访问另一个字段的内容的function。 你可以用任何语言来做的唯一事情是迭代结果:
db.collection.find({}).forEach(function(doc) { db.collection.update( { "_id": doc._id }, {"$set": { "dateField": new Date(doc.dateField) }} ); });
现在,您可以使用db.eval()在服务器上运行它, 但要注意 ,由于文档中存在很多危险,并且可能会对生产系统产生巨大影响。
如果你的其他select是基于让你的更新尽可能靠近(以networking的方式)运行到数据库的话。
同样在你最后的作品中,你确实看到你的date并不全是你在这里提到的格式,有些条目在一个月或一天只有一个数字。 所以如果你还没有的话,你也必须要处理这个问题。
- 将iso-8859-1转换为utf-8 javascript
- MeteorJS – click.incrementfunction不工作(你的第一个meteor应用程序)
- socket.io-redis在redis 3.0.6中得到了尾随字节错误
- 如何在mixins上的extends / inherit情况下正确地为Node.js模块定义JSDoc
- 如何在Node.js / Express中redirect(301)?
- Nodejs,Express GET POST PARAMS
- 设置karma来testingnode.js模块?
- JavaScript减less不能处理math函数?
- socket.io似乎在我的Android手机上延迟