mongoTemplate简单用法(增删改查)

1、在实体类MgUser.java中引入注解表明转换方式

@Data

//需要与mongo中对象(文档)名一致

public class MgUser {

@Id

private ObjectId _id;    //插入mongo时会自动生成_id,如果不加这个字段则会把id属性当成_id

@Field

private Long id;

private String nikename;

private String phone;

/**

*提供set/get和toString方法

*/

}

2、配置MongoTemplate

在.xml中添加bean如下

<mongo:mongo host="127.0.0.1" port="27017"/>

<mongo:db-factory dbname="mg" mongo-ref="mongo" id="DbFactory"/>

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

<constructor-arg name="mongoDbFactory" ref="DbFactory"/>

</bean>

3、将MongoTemplate注入DAO,并调用其相关方法进行CURD(创建(Create)、更新(Update)、读取(Read)和删除(Delete))操作

public class TestMonoTemplate{

@Autowired

private MongoTemplate mongoTemplate;

@Test

public void testCURD(){

//测试增删改查操作(此处简化举例)

mongoTemplate.save();//添加

mongoTemplate.find();  //查询操作

mongoTemplate.findOne();//单个结果查询操作

mongoTemplate.updateFirst();//进行第一条符合要求的数据更新

mongoTemplate.updateMulti();//进行更新多行数据

mongoTemplate.remove();//进行数据删除

}

}

分页时查找数量:

1
2
3
4
5
6
7
public long countSample(String id) {
        Query query = new Query();
        if (StringUtil.hasText(id))
            query.addCriteria(Criteria.where("creator").is(id));
        return mongoTemplate.count(query, Sample.class);
    }

  分页:

1
2
3
4
5
6
7
8
9
10
11
12
public List<Sample> searchAllSample(String id, PageTag page) {
       Query query = new Query();
       query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "update_date")));
       int skip = (page.getCurrentPage() - 1) * page.getPageSize();
       if (StringUtil.hasText(id)) {
           Criteria criteria = Criteria.where("creator").is(id);
           query.addCriteria(criteria);
       }
       query.skip(skip);// 从那条记录开始
       query.limit(page.getPageSize());// 取多少条记录
       return mongoTemplate.find(query, Sample.class);
   }

  修改数量:

1
2
3
4
5
6
7
public void modifyHitNumByNo(String no) {
       Query query = new Query();
       query.addCriteria(Criteria.where("sap_no").is(no));
       Update update = new Update();
       update.inc("hit_num"1);
       mongoTemplate.updateFirst(query, update, Project.class);
   }

  模糊查询:

1
2
3
4
5
6
7
8
public List<Sample> findSamples(String memberId, SelectVo selectVo) {
       Criteria criteria = Criteria.where("creator").is(memberId);
       if (StringUtil.hasText(selectVo.getName())) {
           Pattern pattern = Pattern.compile("^.*" + selectVo.getName() + ".*$", Pattern.CASE_INSENSITIVE);
           criteria.orOperator(Criteria.where("projectNo").regex(pattern), Criteria.where("name").regex(pattern));
       }
       return findPageList(Query.query(criteria), Sample.classnew PageTag(selectVo.getPage(), selectVo.getPageSize()));
   }

  一般查询:

1
2
3
4
5
6
7
8
public List<Project> getProjects(String creator) {
        Query query = new Query();
        if (StringUtil.hasText(creator)) {
            Criteria criteria = Criteria.where("creator").is(creator);
            query.addCriteria(criteria);
        }
        return mongoTemplate.find(query, Project.class);
    }

  

1
2
3
4
5
6
public Experiment getExperimentByExpNo(String expNo) {
       Query query = new Query();
       Criteria criteria = Criteria.where("exp_no").is(expNo);
       query.addCriteria(criteria);
       return mongoTemplate.findOne(query, Experiment.class);
   }

  

1
2
3
4
5
6
7
8
9
10
11
12
13
public void saveOrUpdateExperiment(Experiment experiment) {
      if (StringUtil.hasText(experiment.getExpNo())) {
          Query query = new Query();
          Criteria criteria = Criteria.where("exp_no").is(experiment.getExpNo());
          query.addCriteria(criteria);
          Experiment exp = mongoTemplate.findAndRemove(query, Experiment.class);
          experiment.setCreator(exp.getCreator());
          experiment.setCreateDate(exp.getCreateDate());
      }
      mongoTemplate.save(experiment);
  }

mongoTemplate增删改查相关推荐

  1. Spring Boot 中使用 MongoDB 增删改查

    本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查 1.什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件 ...

  2. servlet增删改查实例_SpringBoot系列(2)整合MongoDB实现增删改查(完整案例)

    自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整 ...

  3. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  4. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

  5. java mongodb怎删改查_Java连接MongoDB进行增删改查

    1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.bea ...

  6. SpringBoot增和MongoDB实现增删改查、复合查询

    SpringBoot增和MongoDB实现增删改查.复合查询 依赖 <dependency><groupId>org.springframework.boot</grou ...

  7. Spring Boot整合MongoDB实现增删改查

    MongoDB这两年来是本人一直使用较多的,之前的使用大多通过封装的工具类对数据库进行操作,虽然也算稳定,但有了Spring Boot之前的工具类直接加到SpringBoot里就没那么好使了,因此查阅 ...

  8. Java操作Mongodb数据(增删改查聚合查询)

    文章目录 一.Java操作MongoDB 二.使用步骤 1.基础配置 2.实体类 3.MongoDB表数据 3.增删改查聚合查询 总结 一.Java操作MongoDB 上一篇文章介绍了,如何在本地使用 ...

  9. java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解

    1. 插入 INSERT sql命令(命令里通过#{}获取对象属性) EG: INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{p ...

最新文章

  1. [笔记]用VS2010编译运行项目时报“LINK : fatal error LNK1104:...
  2. 微信小程序-设置启动页面
  3. Windows Phone 7.1 Sensor プログラミング基礎
  4. Android开发之http网络请求返回码问题集合。
  5. oracle数据缓冲区作用,Oracle内存结构(02)--缓冲区
  6. hessian学习笔记
  7. LeetCode(#26)————删除排序数组中的重复项
  8. Cannot create PoolableConnectionFactory。创建连接池异常
  9. [读书笔记] -《C++ API设计》第6章 C++用法
  10. [译] iPhone X 网页设计
  11. Thinkphp if标签不支持3层以上嵌套
  12. Console-算法[for]-素数
  13. [程序设计]Java实现解析抖音无水印视频
  14. 结合Zemax浅谈几何光学和信息光学中的成像,孔径光阑,视场光阑
  15. python桌面应用_用Python写个Metro风格的桌面程序
  16. j2me游戏开发之LWJGL(Lightweight Java Game Library)
  17. 「30天制作操作系统系列」1~4天从汇编到C语言
  18. 我的一次创业经历--分享给希望创业的大学生们 .
  19. Centos安装rebar3
  20. tar -d 选项 比较归档文件与文件系统中的内容

热门文章

  1. 销售订单——抬头出具发票计划状态计算逻辑
  2. 拓扑排序详解(超详细+模板)
  3. 将U盘文件系统转换为NTFS
  4. 电容式压力传感器工作原理与组成
  5. 软测百科之 日常测试工作中哪些是必须知道的 SQL 语句?
  6. 部标JT808JT1078车载终端模拟器【2022版】
  7. 【SA8295P 源码分析】22 - QNX Ethernet MAC 驱动 之 emac_entry / emac_attach 函数源码分析
  8. 控制杂谈1 —— 控制系统上位机与下位机的分工
  9. shutdown命令 关机与重启
  10. 电子时钟〔 LCD 显示〕设计