mongodb,update和 findAndModify操作。
2016-11-25 13:35
357 查看
mongo简介——update & findAndModify
博客分类: mongo
nosqlmongomongodbnosql
由于发现mongo更新太快,跟我之前所学有很多差异;尤其是聚合操作,比较早的版本只有group和mapreduce两个函数,不支持avg、max、min、sum这些操作,现在除了增加了这些常用操作以外还提供了更加丰富的聚合功能。
从这一篇开始将按照这个url里面的内容介绍:http://docs.mongodb.org/manual/reference/operator/。
撰写博客的顺序按照第二个页面里面的操作符字母顺序,将分别按照增、删、改、查、聚合四个主题更新博客文章。
在介绍到某个操作关键字时如果相关必要的方法还没有介绍,就插入一篇介绍这个方法的博文。
比如说第一个要介绍的是$addToSet,这个操作符,但是它只能用于update操作,而update在之前的博文中还没有介绍过,于是这一篇就介绍下update的相关参数。下一篇再介绍$addToSet
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参数一样。
不论是update的第二个参数,还是findAndModify的update,在不指定更新操作符的情况下,将会用指定的新值替换旧值。
比如,
use iteye;
db.blog.update({_id:ObjectId('......')},{title:'new title'});
//上面的操作就把指定_id的文档的标题改成了‘new title’
如果指定了更新操作符,就可以实现更复杂灵活的更新操作。可以通过更新操作符,增加或减少数值,针对数组类型的属性,做类似队列或栈的操作。单从这一点来说,mongo要比sql数据库强大的多了。
$addToSet:http://runfriends.iteye.com/blog/1830751
$bit:http://runfriends.iteye.com/blog/1831533
相关文章推荐
- mongodb 原子操作findAndModify
- mongo简介——update & findAndModify
- findAndModify与update更新的使用
- mongodb-findAndModify(来源于mongodb权威指南)
- 使用mongodb的findAndModify命令来进行数据同步
- mongodb update操作
- java对mongodb的and, in, or 常用操作
- Mongodb的update操作
- Code First Entity Framework基本与最佳添加(add/create),删除(delete/remove),修改(update/modify)操作
- mongodb 数据库update 操作
- MongoDB常用操作一查询find方法db.collection_name.find()
- MongoDB学习系列12:Java实现对MongoDB的AND、OR和IN操作
- 【容易犯错的update操作】UPDATE 的 ,与 and
- 【MongoDB学习笔记8】深入MongoDB的更新(update)操作:修改器$set
- MongoDB 操作手册CRUD 更新 update
- Java实现对MongoDB的AND、OR和IN操作
- sas数据操作update、modify by ke=、控制modify的更新、datasets添加约束条件、操作文件变动aduit trail
- eclipse找不到 help->software update->find and install
- Java实现对MongoDB的AND、OR和IN操作
- Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"