需求
延长 mongodb 某集合里的“过期时间”字段。
风险分析
update 一下是很简单,主要怕在 Shell 下操作可能改变数字类型。
先做了实验,发现 3.2 的版本下,并没有这个问题,之前看书说,数字可能被改为双精度,看来是旧版本的不足。
1db.UMU.find().forEach(function (doc) { 2 doc.expireDate = NumberLong(doc.updateTime + 180*24*60*60*1000); 3 db.UMU.save(doc); 4 })
其中 NumberLong 是必要的,不然更新后,expireDate 的类型并不是和 updateTime 一样的 NumberLong。