springboot中mongoTemplate的使用

1.导入依赖

 <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-data-mongodbartifactId>
            <version>2.0.5.RELEASEversion>
        dependency>

2.插入

 //Entity代表数据库对应的实体类
 mongoTemplate.insert(Entity);

3.删除

  //where条件是数据库字段,一定要写正确
  Query query=new Query(Criteria.where("_id").is(id));
  mongoTemplate.remove(query,Entity.class);   

4.修改

  Query query=new Query(Criteria.where("_id").is(id));
  Update update = Update.update("要更新的字段", "更新的值");
  mongoTemplate.updateFirst(query, update, Entity.class);

5.查询

  //查找所有
  mongoTemplate.findAll(Entity.class);

  //分页查询
  Query query = new Query();
  query.skip("跳过的数据条数").limit("一页的数据条数"); 
  mongoTemplate.find(query, Entity.class);

  //条件查询1,多条件is("值")后面可以加and("字段2").is("值2")
  Query query=new Query(Criteria.where("字段1").is("值1"));
  mongoTemplate.find(query, Entity.class);

  //条件查询2,gte大于 lte小于
  Criteria criteria1 = Criteria.where("timestamp").gte(startTime).lte(endTime+1000);

分页及模糊查询的案例,其中trainName和trainNo是模糊查询的字段,beginTime、endTime是时间区间查询的参数

 public Page<Site> selectSitePage(Integer currentPage, Integer pageSize, String trainName, String trainNo, String beginTime, String endTime) {
        Criteria criteria = new Criteria();
        //模糊查询
        try{
            if (!trainName.equals("")&&trainName!=null) {
                criteria.orOperator(Criteria.where("name").regex(".*?" + trainName + ".*"));
            }
        }catch (Exception e){
            Criteria.where("name").regex(".*?" + trainName + ".*");
        }

        try{
            if (!trainNo.equals("")&&trainNo!=null) {
                criteria.orOperator(Criteria.where("num").regex(".*?" + trainNo + ".*"));
            }
        }catch (Exception e){
            Criteria.where("num").regex(".*?" + trainNo + ".*");
        }

        try{

            if (!beginTime.equals("")&&beginTime!=null && !endTime.equals("")&&endTime!=null) {
                criteria.orOperator(Criteria.where("rTime").gte(beginTime).lte(endTime));
            }
        }catch (Exception e){
            Criteria.where("rTime").gte(beginTime).lte(endTime);
        }
        //分页的设置
        Query query = new Query();
        //设置起始数
        query.skip((currentPage - 1) * pageSize);
        //设置查询条数
        query.limit(pageSize);
        //将条件加入query
        query.addCriteria(criteria);
        //查询当前页数据集合
        List<Site> siteList = mongoTemplate.find(query, Site.class);
        //查询总记录数
        int count = (int) mongoTemplate.count(query, Site.class);
        //创建分页实体对象(查询的页码,每页的条数大小,总条数,数据)
        Page<Site> page = new Page<>(currentPage, pageSize, count, siteList);
        return page;
    }

你可能感兴趣的:(springboot中mongoTemplate的使用)