接口IMongDaoDelete:

package com.net.test.mongdb.dao;

public interface IMongDaoDelete {

    public void deleteByName(String name);

    public void deleteLikeName(String name);

    public void deleteArrFirst(String name);

    public void pullDomArray(String name,String key,String value);

}

实现类:

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.data.mongodb.core.query.Update.Position;
import org.springframework.stereotype.Repository; import com.net.test.mongdb.dao.IMongDaoDelete;
import com.net.test.mongdb.entity.User; /**
* @author ****
* @Time:2017年8月4日 上午10:34:06
* @version 1.0
* Function: Delete
*/
@Repository
public class MongDaoDeleteImp implements IMongDaoDelete{ @Resource
protected MongoTemplate mongoTemplate; /**
* @description 单条精确删除对象
* @param name
*/
@Override
public void deleteByName(String name)
{
Query query = Query.query(Criteria.where("name").is(name));
mongoTemplate.remove(query, User.class);
} /**
* @description 模糊删除对象,批量
* @param name
*/
@Override
public void deleteLikeName(String name)
{
Query query = Query.query(Criteria.where("name").regex(name));
mongoTemplate.remove(query, User.class);
} /**
*
* @description 删除user元素中hobby属性数组元素的开头或者结尾,根据参数而定
* @param name
*/
@Override
public void deleteArrFirst(String name)
{
Query query = Query.query(Criteria.where("name").is(name)); Update update = new Update();
update.pop("hobby", Position.FIRST);
mongoTemplate.updateFirst(query, update, User.class); update.pop("hobby", Position.LAST);
mongoTemplate.updateFirst(query, update, User.class);
} /**
* @description 根据hobby数组的具体对象值,删除对象的数组数据
* @param name 行数据名称
* @param key 数组键
* @param value 数组值
*/
@Override
public void pullDomArray(String name,String key, String value)
{
Query query = new Query();
query.addCriteria(Criteria.where("name").is(name)); Update update = new Update();
update.pull(key, value); mongoTemplate.updateFirst(query, update, User.class);
} }

最新文章

  1. 阿里云添加路由的Windows批处理文件
  2. C# 发送Http请求 - WebClient类
  3. java制作验证码
  4. [Linux]系统调用理解(4)
  5. NOI 2010 海拔 ——平面图转对偶图
  6. lvs源代码分析
  7. 在centos7上作用mongodb
  8. 浅谈PHP自动化代码审计技术
  9. session cookie 相结合实现
  10. mysql server advanced 5.6基于oracle linux 6.6的安装
  11. link 和 @important 的区别
  12. js中时间的处理
  13. Postgre: How to import UUID function into Postgre 9.3
  14. elementUI表格排序问题
  15. Css - 浮动布局
  16. centos7下zabbix4.0配置磁盘IO监控
  17. 最小生成树<lct>
  18. python通过sftp远程传输文件
  19. python基础学习5----字典
  20. iOS 8 AutoLayout与Size Class自悟

热门文章

  1. Storm概念学习系列之Storm与Hadoop的角色和组件比较
  2. Java获取系统信息(用户目录,临时目录等)
  3. Ajax跨域设置Access-Control-Allow-Origin
  4. java中过滤器、监听器、拦截器的区别
  5. blueterm蓝牙超级终端(源码)
  6. substring、slice、substr的区别
  7. 当您在 64 位 Windows 上运行 Regsvr32.exe 时出现错误信息
  8. ADO.net数据访问方法
  9. Mybatis-连接池与事务
  10. SC || 记不住的正则