您的位置:首页 > 编程语言 > Go语言

mongo简介——update & findAndModify

2016-09-12 20:58 579 查看
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,

                                     });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongo findAndModify update