Mongo Shell 下批量更新集合

需求

延长 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。

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

​一篇文章总结一下Python库中关于时间的常见操作

前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在

MySQL使用on duplicate key update时导致主键不连续自增

使用onduplicatekeyupdate语法有时是很方便,但是会有一个影响:默认情况下,每次更新都会更新该表的自增主键ID,如果更新频率很快,会导致主键ID自增的很快,过段时间就超过数字类型的的范围了解决这个问题,有两种方式:(实际我目前使用的方式是把自增主键ID设置为bigint,也有一部分操作先查询再选择插入OR更新)方法一:拆分成两个

MongoDB——增加数据

建立两个对象j和t,并保存到集合中去.在例子里“”来表示是shell输入提示符j{name:"mongo"};{"name":"mongo"}t{x:3};{"x":3}db.things.save(j);db.things.

CentOS下Redis的安装

CentOS下Redis的安装前言安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redisGEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版

Mongodb入门系列(3)————kill

想了想还是把这个问题单独写个blog。之前听说如果用ill9mongod之后mongodb服务无法开启问题的解决方法是删除/data下的mongod.lock就能够正常使用了。但是用mongodb2.6在fedora下实验的结果是kill9并没有导致服务无法被开启。并且,pkill,kill9都会导致mongo.lock的生成。