MongDB之各种修改操作
接口IMongDaoUpdate:
package com.net.test.mongdb.dao;
import com.net.test.mongdb.entity.User;
public interface IMongDaoUpdate {
public void updateUser(User user);
public void updateUserHobby(User user);
public void updateUserHobbyDiffer(User user);
public void updateUserUserPsg(User user);
public void deleteUserUserPsg(String name,String field);
}
实现类:
package com.net.test.mongdb.dao.imp; import javax.annotation.Resource; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository; import com.net.test.mongdb.dao.IMongDaoUpdate;
import com.net.test.mongdb.entity.User; /**
* @author ***
* @Time:2017年8月4日 下午1:50:16
* @version 1.0
* Function: TODO
*/
@Repository
public class MongDaoUpdateImp implements IMongDaoUpdate { @Resource
protected MongoTemplate mongoTemplate; /**
* @description 单条更新user信息
* @param user
*/
@Override
public void updateUser(User user)
{
Query query = Query.query(Criteria.where("name").is(user.getName()));
Update up = new Update();
up.set("sex", user.getSex()).inc("age", user.getAge()).set("hobby", user.getHobby()); mongoTemplate.updateFirst(query, up, User.class);
} /**
* @description 单独对user信息的某个特定数组字段继续追加数据,不管是否重复
* @param user
*/
@Override
public void updateUserHobby(User user)
{
Query query = Query.query(Criteria.where("name").is(user.getName()));
Update up = new Update();
String[] str = new String[user.getHobby().size()];
for(int i = 0 ; i < user.getHobby().size();i++)
{
str[i] = user.getHobby().get(i).toString();
}
up.pushAll("hobby", str);
mongoTemplate.updateFirst(query, up, User.class);
} /**
* @description 一次性追加多个不重复的数组元素
* @param user
*/
@Override
public void updateUserHobbyDiffer(User user)
{
Query query = Query.query(Criteria.where("name").is(user.getName())); Update up = new Update();
Object[] str = new Object[user.getHobby().size()];
for(int i = 0 ; i < user.getHobby().size();i++)
{
str[i] = user.getHobby().get(i).toString();
}
up.addToSet("hobby").each(str);
mongoTemplate.updateFirst(query, up, User.class);
} /**
* @description 更新内置对象
* @param user
*/
@Override
public void updateUserUserPsg(User user)
{
Query query = Query.query(Criteria.where("name").is(user.getName()));
Update update = new Update();
update.set("psg.address", user.getPsg().getAddress());
update.set("psg.phone", user.getPsg().getPhone());
update.set("psg.county", "江苏"); mongoTemplate.updateFirst(query, update, User.class);
} /**
* @description 删除内置对象的某个字段
* @param name
* @param field
*/
@Override
public void deleteUserUserPsg(String name, String field)
{
Query query = Query.query(Criteria.where("name").is(name));
Update update = new Update();
update.unset("psg.county");
mongoTemplate.updateFirst(query, update, User.class); } }
MongDB之各种修改操作的更多相关文章
- 关于SubSonic3.0插件使用实体进行更新操作时(执行T.Update()或T.Save()),某些列无法进行修改操作的问题处理
SubSonic3.0插件在创建实体后,对实体进行赋值操作时,为了去除一些不必要更新的字段,减少更新的内容,会将更新内容与默认值进行比较,如果默认值与当前更新的内容相等时,则不提交更新本列,这主要是为 ...
- 采用DOM进行表格的修改操作
2015-08-31 <html> <head> <title>采用DOM进行表格的修改操作</title> <script language=& ...
- uoj #58. 【WC2013】糖果公园(树上莫队算法+修改操作)
[题目链接] http://uoj.ac/problem/58 [题意] 有一棵树,结点有自己的颜色,若干询问:u,v路径上的获益,并提供修改颜色的操作. 其中获益定义为Vc*W1+Vc*W2+…+V ...
- 基于jsp+servlet图书管理系统之后台用户信息修改操作
上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/de ...
- SpringDataJpa的批量 保存 修改 操作
SpringDataJpa进行修改数据库操作有两种方式: 一.调用保存实体的方法 1.保存一个实体:repository.save(T entity) 2.保存多个实体:repository.save ...
- mysql常用快速查询修改操作
mysql常用快速查询修改操作 一.查找并修改非innodb引擎为innodb引擎 # 通用操作 mysql> select concat('alter table ',table_schema ...
- java对excel文件内容读写修改操作
Read.java package domain; import java.io.FileInputStream; import java.io.InputStream; import jxl.Cel ...
- Java读取json文件并对json数据进行读取、添加、删除与修改操作
转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0 1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...
- mybatis框架入门程序:演示通过mybatis实现数据库的修改操作
1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.修改用户的配置文件: <upd ...
随机推荐
- docker的卸载方法
卸载: 1.查询docker安装过的包: yum list installed | grep docker 2.删除安装包: yum remove docker-ce.x86_64 ddocker-c ...
- <llinux下kvm虚拟化>
原理就是本来可能要10台物理机完成的事现在只要5台,分别在每台物理机上虚拟一台,这5太虚拟机共享一个stronge,比如有一台物理机down掉后或是要做维护,我们可以把它上面的虚拟机牵走,从而减少损失 ...
- 50个必备的jQuery代码段
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...
- 安装flask-mysqldb的时候,提示 mysql_config not found 的解决方法
解决办法: sudo apt-get install libmysqlclient-dev sudo updatedb locate mysql_config 然后进入mysql_config的路径( ...
- [Environment Build] 工作中遇到的关于Git的问题
修改已经提交的commit中的author, commit git commit --amend --author 'Your Name <Your Email>' git commit ...
- swift学习笔记7
不管做什么事,只要敬业点,把该作的做好.不要总找借口. 不要看不起小事,生活本是一件件小事的集合.细节决定成败. 士兵突击里面有句台词:他每做一件小事的时候,都好像抓住了一根救命稻草,到最后你才发现, ...
- Hibernate笔记3--多表操作-导航查询
一.一对多操作 1.构造实体类及编写配置文件: 一方: // 一个Customer对应多个linkman private Set<Linkman> linkmans = new ...
- Yii2 components api/controller
When we wrote API, those controllers need to implement the following feature: 1. return JSON format ...
- graylog插件的安装
什么是插件和插件的作用我就不说了,大家应该都知道了. 安装方法是打开下面选择项 进去后出现如下界面 选择事先下载好的插件后,点击上传.这里以nginx日志插件为例 之后查看效果,发现对应的过滤 ...
- 聊聊javascript的事件
javascript事件1.点击事件 onclick obtn.click=function(){};2.移入/移出事件 onmouseover/onmouseout 注意:在父级中移入移出,进 ...