spring boot 值mongodb基本操作

Spring Boot 0 935 0 2021-03-22 18:55:06
  1. 通过注解注入 mongoTemplate
    @Autowired
    private MongoTemplate mongoTemplate;
  2. 获取Query 和  Criteria 对象
    Query query = new Query();
    Criteria criteria = new Criteria();
  3. 多参数动态查询。criteria 有两种写法,一种是criteria.and().is();另一种是criteria.where().is(),两种方式不能混合使用,否则不生效。
    if(runningStatus != null){
    criteria.and("runningStatus").is(runningStatus);
    }
  4. 根据日期时间进行范围查询
    SimpleDateFormat format =  new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
    criteria.and("createTime").gt(format.parse(createTime));
    criteria.and("endTime").lte(format.parse(endTime));
  5. 模糊查询
    Pattern pattern=Pattern.compile("^.*"+taskTypeCode+".*$", Pattern.CASE_INSENSITIVE);
    criteria.and("taskTypeCode").regex(pattern);
  6. 将查询条件装载到query中
    query.addCriteria(criteria);
  7. 排序 通过参数 sord 判断排序方向,sortBy 为排序字段
    query.with(new Sort(sord.length() == 3 ? Direction.ASC : Direction.DESC, sortBy));
  8. 分页,有两种方式,一种是通过pageable 一种是 limit().skip();limit表示查询多少数据,skip表示从哪条数据查起
    //第一种
    query.with(pageable);
    long totoal = this.mongoTemplate.count(query, TaskMongo.class);
    List<TaskMongo> listTaskMongo = this.mongoTemplate.find(query , TaskMongo.class);
    //第二种
    query.limit(5000).skip(5000);
    List<TaskMongo> listTaskMongo = this.mongoTemplate.find(query , TaskMongo.class);
  9. 一个模糊关键字匹配多个字段

    Pattern pattern=Pattern.compile("^.*"+pattern_name+".*$", Pattern.CASE_INSENSITIVE);
            criatira.orOperator(Criteria.where("name").regex(pattern),
                    Criteria.where("sex").regex(pattern),
                    Criteria.where("age").regex(pattern),
                    Criteria.where("class").regex(pattern));
  10. 查询指定的字段通过 Field这个类,通过findFields.include()方法设置查询字段
    Query query = new Query(criteria);
    Field findFields = query.fields();
    findFields.include("id");

主题切换

颜色:

主题: