[Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作
2014-08-06 13:19
701 查看
插入操作:
直接给个例子
collection document的名字有下面几种方式:
1. 默认为类名,并且首字母小写。 比如com.test.Person -> person
2. 通过在类名上增加标记@Document 来指定。
3. 在执行操作时,把collectionname作为参数传递进去。
主要操作:
insert,insertAll, save(当object不存在时,执行insert)。
更新操作:
主要操作:
updateFirst(更新第一个匹配的), updateMulti(更新所有匹配的)
upsert操作:
先查询,如果没有符合条件的,会执行插入,插入的值是查询值 + 更新值。
findAndModify操作:
可以通过设置FindAndModifyOptions来设置不同的执行效果。
remove操作可以用来进行删除。
直接给个例子
import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Criteria.query; … Person p = new Person("Bob", 33); mongoTemplate.insert(p);//还可以多加一个参数,来提供collectionname。比如insert(p,"person"). Person qp = mongoTemplate.findOne(query(where("age").is(33)), Person.class);
collection document的名字有下面几种方式:
1. 默认为类名,并且首字母小写。 比如com.test.Person -> person
2. 通过在类名上增加标记@Document 来指定。
3. 在执行操作时,把collectionname作为参数传递进去。
主要操作:
insert,insertAll, save(当object不存在时,执行insert)。
更新操作:
import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Query; import static org.springframework.data.mongodb.core.query.Update; ... WriteResult wr = mongoTemplate.updateMulti(new Query(where("accounts.accountType").is(Account.Type.SAVINGS)), new Update().inc("accounts.$.balance", 50.00), Account.class);
主要操作:
updateFirst(更新第一个匹配的), updateMulti(更新所有匹配的)
upsert操作:
template.upsert(query(where("ssn").is(1111).and("firstName").is("Joe").and("Fraizer").is("Update")), update("address", addr), Person.class);
先查询,如果没有符合条件的,会执行插入,插入的值是查询值 + 更新值。
findAndModify操作:
mongoTemplate.insert(new Person("Tom", 21)); mongoTemplate.insert(new Person("Dick", 22)); mongoTemplate.insert(new Person("Harry", 23)); Query query = new Query(Criteria.where("firstName").is("Harry")); Update update = new Update().inc("age", 1); Person p = mongoTemplate.findAndModify(query, update, Person.class); // return's old person object assertThat(p.getFirstName(), is("Harry")); assertThat(p.getAge(), is(23)); p = mongoTemplate.findOne(query, Person.class); assertThat(p.getAge(), is(24)); // Now return the newly updated document when updating p = template.findAndModify(query, update, new FindAndModifyOptions().returnNew(true), Person.class); assertThat(p.getAge(), is(25));
可以通过设置FindAndModifyOptions来设置不同的执行效果。
Query query2 = new Query(Criteria.where("firstName").is("Mary")); p = mongoTemplate.findAndModify(query2, update, new FindAndModifyOptions().returnNew(true).upsert(true), Person.class); assertThat(p.getFirstName(), is("Mary")); assertThat(p.getAge(), is(1));
remove操作可以用来进行删除。
相关文章推荐
- [Spring Data MongoDB]学习笔记--牛逼的MongoTemplate
- [Spring Data MongoDB]学习笔记--_id和类型映射
- [Spring Data MongoDB]学习笔记--建立数据库的连接
- [Spring Data MongoDB]学习笔记--MapReduce
- MongoDB快速入门学习笔记5 MongoDB的文档修改操作
- spring data mongodb 提供的MongoTemplate 模板,进行Aggregation操作实践
- 【MongoDB学习笔记12】深入MongoDB的更新(update)操作:数组修改
- MongoDB快速入门学习笔记3 MongoDB的文档插入操作
- [Spring Data MongoDB]学习笔记--注册一个Mongo实例
- [Spring Data MongoDB]学习笔记--MongoTemplate查询操作
- Spring Data MongoDB]学习笔记--牛逼的MongoTemplate
- spring-data-mongodb 使用笔记
- [Spring Data Repositories]学习笔记--定义自己的repository
- spring-data-mongodb 对象关联 @DBRef学习 之疑问
- pyramid学习笔记x-mongodb基本操作
- MongoDB 学习笔记(python操作)
- MongoDB 学习笔记(一):安装及简单shell操作
- [Spring Data Repositories]学习笔记--使用现有的repository
- delphi学习笔记_查询、插入、删除、修改
- MongoDB 学习笔记(一):安装及简单shell操作