mongodb update日期为任意时间

可爱的组巡就要来了,工作也进入一种癫狂的状态。今天要实现mongodb的collection复制修改,复制的功能mongondb 提供了现成函数的支持,可以使用

db.cloneCollection(from, collection, query)
或者
db.collection.copyTo(newCollection)
起初的想法是使用clone后对需要修改的字段做update。但是需要更改的字段是日期型,以前没有修改过日期,天真的使用了$inc,结果返回了类型错误。原来$inc不支持日期型。查找mongo的手册,update 操作对日期的支持仅找到$currentdate返回当前日期。而我的需求是将日期的月份或者具体日期加减一个值(好吧,我其实就是在造数据)。google,statcoverflow都用了,但还是没有找到办法……很绝望。最终我还是出大招了,虽然我mongo学的不好,但我会js啊,只要支持foreach一切都很有搞头~~~
好了直接贴代码
db.http_request_20141212.find().forEach(function(doc){
    var date = doc.colTime;
    date.setMonth(date.getMonth()+2);
    doc.colTime=date;
    db.http_request_20150212.save(doc);
})

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注