Spring Data MongoDB 四:基本文档修改(update)(一)
来源:互联网 发布:小米无线鼠标mac 编辑:程序博客网 时间:2024/06/01 09:11
Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
学习MongoDB 二:MongoDB添加、删除、修改
一.简介
Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的update的操作,可以对在存储数据时是以键-值对的集合键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档进行修改,我们今天介绍对基本文档的修改的方法、参数进行介绍。
我们对MongoDB的基本文档修改, MongoDB的查询语法:
>db.collection.update( <query>, <update>, upsert:<boolean>, multi:<boolean> )
参数
类型
描述
query
document
要修改哪些的查询条件,类似于SQL的 where
update
document
要修改的字段对应的值
upsert
boolean
可选的,默认值是false。如果根据查询条件没找到对应的文档,如果设置为true,相当于执行insert,如果设置为false,不做任何的操作。
multi
boolean
可选的,默认值是false。如果根据查询条件找到对应的多条记录是,如果设置为false时,只修改第一条,如果设置为true,全部更新
我们SpringData MongoDB提供的对应的修改方法
1. mongoTemplate. updateFirst 修改符合条件第一条记录
2. mongoTemplate. updateMulti 修改符合条件的所有
3. mongoTemplate. Upsert 修改符合条件时如果不存在则添加
参数说明:
(1) Query : 要修改哪些的查询条件,类似于SQL 的 where
1) org.springframework.data.mongodb.core.query
2) org.springframework.data.mongodb.core.query.BasicQuery
这两个参数的区别和使用,在Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一) 有介绍过,就在具体介绍
(2) update
1) org.springframework.data.mongodb.core.query.Update
2) 子类org.springframework.data.mongodb.core.query.BasicUpdate
org.springframework.data.mongodb.core.query.BasicUpdate继承了org.springframework.data.mongodb.core.query.Update
Update提供了一些方法对基本文档进行操作
Spring MongoDB Update
MongoDB
描述
Update rename (String oldName, String newName)
$rename
重命名字段
Update set (String key, Object value)
$set
用来指定一个键的值,如果不存在则创建它
Update unset (String key)
$unset
用来指定一个键的值,如果不存在不创建创建它
BasicUpdate继承了update方法,BasicUpdate构造参数可以自己实现update SQL 语句
1)BasicUpdate(DBObjectupdate Object) Object是JSON格式
2)BasicUpdate(java.lang.StringupdateString)
BasicUpdate需要手动实现$set等操作符SQL语句,也可以使用Update的一些操作修改文档的操作方法,因为继承了Update类
二.mongoTemplate.Upsert 操作
mongoTemplate. Upsert 修改符合条件时如果不存在则添加
1.对修改符合条件时如果不存时操作
第一步:我们查询条件onumber=001的cname进行修改,Spring DataMongoDB代码实现
mongoTemplate.upsert(newQuery(Criteria.where("onumber").is("001")), newUpdate().set("cname", "zcy"), collectionName);
第二步:我们先查询MongoDB数据
>db.orders.find({"onumber":"001"}) >
第三步:我们执行mongoTemplate.upsert操作
第四步:查询MongoDB数据:
>db.orders.find({"onumber":"001"}) { "_id" : ObjectId("55c5673e28121ca9e1dd397f"),"onumber" : "001", "cname" : "zcy" }
修改符合条件时如果不存在则添加,相当于执行了insert
2. 对修改符合条件时存在时,修改字段不存在的操作
第一步:Spring Data MongoDB代码没改变
第二步:我们先查询MongoDB数据 :
> db.orders.find({"onumber":"001"}) { "_id" : ObjectId("55c5689727e0a66301f9bb51"),"onumber" : "001" }
第三步: 我们执行mongoTemplate.upsert操作
第四步:然后在查询MongoDB数据:
>db.orders.find({"onumber":"001"}) { "_id" : ObjectId("55c5689727e0a66301f9bb51"),"onumber" : "001", "cname" : "zcy" }
相当于执行了MongoDB的:
>db.orders.update( {"onumber" :"001"}, {$set: { "cname " : "zcy2"} }, true, true )
验证了 mongoTemplate. Upsert 修改符合条件时如果不存在则添加
三.mongoTemplate. updateFirst
mongoTemplate. updateFirst 修改符合条件第一条记录
1. 对修改符合条件时多条记录的操作
第一步: 我们查询条件cname=zcy 的date进行修改,Spring Data MongoDB代码实现
mongoTemplate. updateFirst (newQuery(Criteria.where("cname").is("zcy ")), newUpdate().set("date", "2015-08-08"), collectionName);
第二步:我们先查询MongoDB数据
第三步:执行mongoTemplate. updateFirst操作
第四步:然后在查MongoDB数据:
四.mongoTemplate. updateMulti
mongoTemplate.updateMulti修改符合条件的所有
1. 对修改符合条件时多条记录的操作
第一步:我们查询条件cname=zcy 的date进行修改,Spring Data MongoDB代码实现
mongoTemplate. updateMulti (newQuery(Criteria.where("cname").is("zcy ")), newUpdate().set("date", "2015-08-08"), collectionName);
第二步: 我们先查询MongoDB数据
第三步:执行mongoTemplate. updateMulti操作
第四步:查询MongoDB数据:
修改符合条件的所有数据文档
四.BasicUpdate操作
BasicUpdate JSON格式,需要我们自己实现update SQL,BasicUpdate需要手动实现$set等操作符SQL语句,也可以使用Update的一些操作修改文档的操作方法,因为继承了Update类
mongoTemplate.updateFirst 修改符合条件第一条记录
第一步:对修改符合条件时多条记录的操作时,我们查询条件cname=zcy 的date进行修改,Spring Data MongoDB代码实现
BasicDBObject basicDBObject=new BasicDBObject(); basicDBObject.put("$set", new BasicDBObject("date","2015-08-09")); Updateupdate=newBasicUpdate(basicDBObject); mongoTemplate.updateFirst(new Query(Criteria.where("cname").is("zcy")), update,collectionName);
第二步:查询MongoDB的数据
第三步:执行mongoTemplate.updateFirst 操作。
第四步:查询MongoDB数据
basicDBObject可以同时对多个字段进行修改
今天介绍了对基本的文档的修改,只对Update set (String key, Object value)操作,其他的操作符可以参考学习MongoDB 二:MongoDB添加、删除、修改,我们今天主要介绍了修改方法,其他的操作跟set 方法差不多,所以就没详细一个一个介绍过去。
- Spring Data MongoDB 四:基本文档修改(update)(一)
- Spring Data MongoDB 四:基本文档修改(update)(一)
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
- Spring Data MongoDB 三:基本文档查询(query、BasicQuery)
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)
- Spring Data MongoDB 基本文档查询(Query、BasicQuery)
- Spring Data MongoDB :基本文档查询
- Spring Data 与MongoDB 集成四:操作篇(查询)
- Spring Data 与MongoDB 集成三:操作篇(修改)
- Spring Data MongoDB基本操作
- MongoDB四(插入文档)
- Spring Data JPA 实战(一)-体系结构及基本配置
- Spring Data MongoDB 五:进阶文档查询(分页、Morphia)(二)
- Spring Data MongoDB 五:进阶文档查询(分页、Morphia)(二)
- MongoDB 查询文档(一)
- 学习MongoDB 四: MongoDB查询(一)
- 线程通信机制
- C++数组
- FOJ - 1021 - 飞船赛
- Defining a controller with @Controller
- 【DOM操作】DOM操作HTML中的Select标签
- Spring Data MongoDB 四:基本文档修改(update)(一)
- Errors occurred during the build. Errors running builder 'JavaScript Validator' on project
- 【转】2012年6月25 – 某欧美上市企业PHP工程师最新面试题
- JAVA 阻塞队列
- java 去掉html标签
- Select和epoll的区别
- Round Robin 概念理解
- hibernate延迟加载(get和load的区别)
- Windows下Redis的安装使用