本文整理自网络,侵删。
前言
数据更新是我们日常操作数据库必不可少的一部分,下面这篇文章就给大家分享了操作MongoDB数据更新的一些干货,对大家具有一定的参考学习价值,一起来学习学习吧。
常用的函数
update(<query>,<update>,<upsert>,<multi>)
,其中<query>表示筛选的条件,<update>是要更新的数据updateMany()
更新所有匹配到的数据
upsert
upsert是一个布尔类型的数据,如果为true时,当根据query条件没有找到匹配的数据时,就表示插入此条数据,如果为false就表示不插入数据
下面将会在一个空的集合中更新数据
//就会插入此条数据,因为没有找到匹配的信息 db.user.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},{'upsert':true}); db.user.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},true); //和上面的语句等价 //输出 db.user.find() { "_id" : ObjectId("59067b70856d5893a687655f"), "age" : 22, "name" : "chenjiabing", "sex" : "Man", "hobby" : "read" }
multi
如果这个参数为true,就把按条件查出来多条记录全部更新。默认为false,如果为true的话和updateMany()
一样的效果
下面将会更新所有匹配到的数据
db.user.update({name:'chenjiabing'},{$set:{'hobby':'code'}},{'multi':true});
字段更新操作符 Field Update Operators
$set
$set
用来指定一个键的值。如果这个键不存在,则创建它。注意这里的更新默认是只更新第一条匹配到的数据,如果第一条匹配的数据已经满足修改后的条件,那么将不会执行下面匹配的信息
下面我们将会添加一条信息在数据库中
db.user.insert({"name":'jack',"age":22,"sex":'Man','school':{'name':'jsnu','city':'xuzhou'}});
运行下面的代码,将该用户的兴趣设置为“读书”并添加至文档中(此时文档中hobby键是不存在,该条文档就会创建它)
db.user.update({name:'jack'},{$set:{'hobby':'read'}})
下面将会修改用户的年龄
db.user.update({'name':'jack'},{$set:{'age':20}})
下面用$set修改数据类型,将sex设置为1
db.user.update({'name':'jack'},{$set:{'sex':1}})
下面用$set修改内嵌文档,必须指定文档的名字和键值
db.user.update({name:'jack'},{$set:{'school.name':'shida','school.city':'beijing'}})
$unset
从文档中移除指定的键
下面将要删除上面插入的hobby键
db.user.update({name:'jack'},{$unset:{'hobby':1}}) //这里的值是任意给的,随便什么值
$inc
$inc
修改器用来增加已有键的值,或者在键不存在时创建一个键$inc
就是专门来增加(和减少)数字的。$inc
只能用于整数、长整数或双精度浮点数。要是用在其他类型的数据上就会导致操作失败
例如毎次有人访问该博文,该条博文的浏览数就加1,用键pageViews保存浏览数信息。这个键值上面没有定义过,所以会自动创建一个
db.user.update({name:'jack'},{$inc:{'pageViews':1}}); //起初没有就会自动创建一个键
下面演示增加和减少
db.user.update({name:'jack'},{$inc:{'pageViews':100}}) ; //这里是在上面的基础上加上100,此时变成了101 db.user.update({name:'jack'},{$inc:{"pageViews":-100}}) ; //这里是在上面的基础上减去100,此时还是变成了1
$rename
语法: {$rename: { <old name1>: <new name1>, <old name2>: <new name2>, ... } }
$rename
操作符可以重命名字段名称,新的字段名称不能和文档中现有的字段名相同。
相关阅读 >>
mongodb4.0在windows10下的安装与服务配置教程详解
windows下安装mongodb以及node.js连接mongodb实例
mongodb入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)
更多相关阅读请进入《mongodb》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。