mongodb字段和数组更新数据示例解说
发布时间:2022-04-26 08:44:06 所属栏目:系统 来源:互联网
导读:更新数据操作是数据库的日常操作,那么mongodb更新数据的方法有哪些呢?下面就给大家分享关于mongodb更新数据的方法,有字段更新,数组更新等等方法,接下来跟随小编一起看看吧。 数据更新是我们日常操作数据库必不可少的一部分,下面这篇文章就给大家分享了
更新数据操作是数据库的日常操作,那么mongodb更新数据的方法有哪些呢?下面就给大家分享关于mongodb更新数据的方法,有字段更新,数组更新等等方法,接下来跟随小编一起看看吧。 数据更新是我们日常操作数据库必不可少的一部分,下面这篇文章就给大家分享了操作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'},{$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 (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |