Mongo Shell 下批量更新集合

Stella981
• 阅读 640

需求

延长 mongodb 某集合里的“过期时间”字段。

风险分析

update 一下是很简单,主要怕在 Shell 下操作可能改变数字类型。

先做了实验,发现 3.2 的版本下,并没有这个问题,之前看书说,数字可能被改为双精度,看来是旧版本的不足。

db.UMU.find().forEach(function (doc) {
    doc.expireDate = NumberLong(doc.updateTime + 180*24*60*60*1000);
    db.UMU.save(doc);
    })

其中 NumberLong 是必要的,不然更新后,expireDate 的类型并不是和 updateTime 一样的 NumberLong。

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Wesley13 Wesley13
3年前
MySQL使用on duplicate key update时导致主键不连续自增
使用onduplicatekeyupdate语法有时是很方便,但是会有一个影响:默认情况下,每次更新都会更新该表的自增主键ID,如果更新频率很快,会导致主键ID自增的很快,过段时间就超过数字类型的的范围了解决这个问题,有两种方式:(实际我目前使用的方式是把自增主键ID设置为bigint,也有一部分操作先查询再选择插入OR更新)方法一:拆分成两个
Wesley13 Wesley13
3年前
MongoDB——增加数据
建立两个对象j和t,并保存到集合中去.在例子里“”来表示是shell输入提示符j{name:"mongo"};{"name":"mongo"}t{x:3};{"x":3}db.things.save(j);db.things.
Stella981 Stella981
3年前
CentOS下Redis的安装
CentOS下Redis的安装前言安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redisGEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版
Stella981 Stella981
3年前
Mongodb入门系列(3)————kill
想了想还是把这个问题单独写个blog。之前听说如果用ill9mongod之后mongodb服务无法开启问题的解决方法是删除/data下的mongod.lock就能够正常使用了。但是用mongodb2.6在fedora下实验的结果是kill9并没有导致服务无法被开启。并且,pkill,kill9都会导致mongo.lock的生成。
Wesley13 Wesley13
3年前
unity播放视频切换黑屏问题如何解决
在unity里面播放视频,我们会经常遇到两个视频之间切换的时候会黑屏一下,虽然时间很短,但是闪黑一下客户肯定会不满意,为解决这个问题我也是绞尽了脑汁,后来完美解决了,现在分享一下我的方法,主要分为三步:第一步:创建一个计时器申请一个单精度浮点变量,赋值为0。floatjishi0;在Update函数里将计时器和当前游
Stella981 Stella981
3年前
Linux系统Shell编程——脚本编写思路与过程
!(https://oscimg.oschina.net/oscnet/b5650333a00146298052e4da35a0746d.gif"兔子红箭头引导关注")Linux系统Shell编程——脚本编写思路与过程“前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也
Wesley13 Wesley13
3年前
Linux系统shell脚本编程――生产实战案例
Linux系统shell脚本编程――生产实战案例在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验。
前端计算数字精度丢失问题解决方法记录 | 京东云技术团队
在日常一些需求中,总会遇到一些需要前端进行手动计算的场景,那么这里需要优先考虑的则是数字精度问题!具体请看下面截图如图所示,在JavaScript进行浮点型数据计算当中,会出现计算结果“不正确”的现象。我们知道浮点型数据类型主要有:单精度float、双精度