spring mongodb — upsert
2015-07-22 14:44
591 查看
简介
[code] upsert是一种特殊的更新,要是没有文档符合更新条件,就会以这个条件和更新文档为基础创建一个新的文档。如果找到匹配文档,则正常更新。 要是没有upsert,在一些场景下,我们需要分下面两个步骤走: 步骤1:查询判断数据是否存在, 步骤2:存在则更新,不存在则新增。 这样会带来两个明显的问题: 问题1:增加了访问数据库的次数,降低了效率。 问题2:要是多个线程同时运行这段代码,还要考虑不能同时插入文档的限制。 要是使用upsert可以把上面两个步奏合成一步减少代码量,同时更高效,并且是原子性的。
原生mongodb使用方式
spring中使用方式
[code]public void addFriends(String userName, String friendUserName) { Query query = Query.query(Criteria.where("userName").is(userName)); //addToset:数组不存在则创建,同时不会加入重复的数据 Update update = new Update().addToSet("friendOpenIdSet", "friendUserName"); mongoTemplate.upsert(query, update, FriendInfo.class); }
小结
upsert解决了这些时间困扰我的好几个问题,之前看资料的时候也看到过upsert,但是因为没做过笔记什么的,导致后面记不起来有这么个东西了。所以还是要多写点东西加深印象.相关文章推荐
- Mongodb -(3) replica set+sharding
- MongoDB常见错误总结
- mongodb 3.0 创建用户 开启认证
- MongoDB 索引相关知识
- spring mongodb修改器—$set、$unset、$inc
- Mongodb 文档翻译
- golang 下 mongodb 与 postgresql 插入速度的测试
- Asp.mvc(一)~使用MongoDB来存储数据
- MongoDB客户端shell基本操作
- 初窥Python(一)——使用pymongo连接MongoDB
- MongoDB -(2) replica sets
- MongoDB的安装与配置
- Mongodb详解与安装
- Meteor数据库mongodb查询
- mongodb gridfs基本使用
- MongoDB基本使用
- VS2013 调用的目标发生了异常
- MongoDB数据库学习
- 利用bat批处理启动MongoDB数据库
- 学习MongoDB 八: MongoDB索引(索引限制条件)(二)