mongodb更新数据的方法
这篇文章主要介绍mongodb更新数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Mongodb更新有两个命令:update、save。
1.1update命令
update命令格式:
db.collection.update(criteria,objNew,upsert,multi)
参数说明:
criteria:查询条件。
objNew:update对象和一些更新操作符。
upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。
multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。
示例:
>db.classes.insert({"name":"c1","count":30})>db.classes.insert({"name":"c2","count":30})>db.classes.find(){"_id":ObjectId("5030f3a3721e16c4ab180cd9"),"name":"c1","count":30}{"_id":ObjectId("5030f3ab721e16c4ab180cda"),"name":"c2","count":30}>
示例1:把count大于20的class name修改为c3
>db.classes.update({"count":{$gt:20}},{$set:{"name":"c3"}})>db.classes.find(){"_id":ObjectId("5030f3a3721e16c4ab180cd9"),"name":"c3","count":30}{"_id":ObjectId("5030f3ab721e16c4ab180cda"),"name":"c2","count":30}>
由于没有指定upsert和multi的值,所以全部默认为false,由结果可以看出,只修改了第一条符合条件的记录。
示例2:把count大于20的class name修改为c4,设置multi为true
>db.classes.update({"count":{$gt:20}},{$set:{"name":"c4"}},false,true)>db.classes.find(){"_id":ObjectId("5030f3a3721e16c4ab180cd9"),"name":"c4","count":30}{"_id":ObjectId("5030f3ab721e16c4ab180cda"),"name":"c4","count":30}>
由于指定了multi为true,所以对两条符合条件的记录都进行了更新。
示例3: 把count大于50的class name修改为c5,设置upsert为true
>db.classes.update({"count":{$gt:50}},{$set:{"name":"c5"}},true,false)>db.classes.find(){"_id":ObjectId("5030f3a3721e16c4ab180cd9"),"name":"c4","count":30}{"_id":ObjectId("5030f3ab721e16c4ab180cda"),"name":"c4","count":30}{"_id":ObjectId("5030f589ce8fa8884e6cd441"),"name":"c5"}>
在集合中没有count大于50的记录,但是由于指定了upsert为true,如果找不到则会插入一条新记录。
1.2save命令
Mongodb另一个更新命令是save,格式如下:
db.collection.save(obj)
obj代表需要更新的对象,如果集合内部已经存在一个和obj相同的"_id"的记录,Mongodb会把obj对象替换集合内已存在的记录,如果不存在,则会插入obj对象。
这条命令比较简单,示例就省略了。
以上是mongodb更新数据的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。