mongo简介——update & findAndModify

本文介绍MongoDB中db.collection.update及findAndModify方法的使用技巧。update方法用于更新文档,支持多文档更新与插入操作;findAndModify则提供了一种类事务特性,能确保查询与更新操作的原子性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

db.COLLECTION_NAME.update({},{},true|false,true|false);

第一个参数是查询选择器,与findOne的参数一样,相当于sql的where子句

第二个参数是更新操作文件,由各种更新操作符和更新值构成,

第三个参数是upsert。如果是true,表示如果没有符合查询选择器的文档,mongo将会综合第一第二个参数向集合插入一个新的文档。

第四个参数是multi。true:更新匹配到的所有文档,false:更新匹配到的第一个文档,默认值

第三第四个参数也可以合并成一个:

db.COLLECTION_NAME.update({},{},{multi:true|false,upsert:true|false});

 

拥有类似事务特性的更新与查询操作——findAndModify.

非常奇怪的是,在上面的链接里面没有找到这个函数的定义。

它是原子性的,会返回符合查询条件的更新后的文档。

一次最多只更新一个文档,也就是条件query条件,且执行sort后的第一个文档。

db.COLLECTION_NAME.findAndModify({query:{},

                                                                update:{},

                                                                remove:true|false,

                                                                new:true|false,

                                                                sort:{},

                                                                fields:{},

                                                                upsert:true|false});

query是查询选择器,与findOne的查询选择器相同

update是要更新的值,不能与remove同时出现

remove表示删除符合query条件的文档,不能与update同时出现

new为true:返回个性后的文档,false:返回个性前的,默认是false

sort:排序条件,与sort函数的参数一致。

fields:投影操作,与find*的第二个参数一致。

upsert:与update的upsert参数一样。

例如:

db.mongo_book.findAndModify({query:{"code":15409639},
                                     update:{ $set : { catalogStatus : 3}} ,
                                     new:true,
                                     });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值