springboot 整合mongoTemplate的 Query Criteria 用法

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");

 

 

 

 

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Spring Boot与MongoTemplate可以用来操作GridFS。 GridFS是MongoDB的一种文件存储机制,它将大文件拆分成小的chunks并存储在MongoDB的集合中。GridFS适用于存储和检索大文件,比如音频、视频或者其他大型文件。 在Spring Boot中使用MongoTemplate操作GridFS需要进行以下步骤: 1. 首先,在`pom.xml`文件中添加MongoDB和Spring Data MongoDB的依赖。例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 2. 在Spring Boot的配置文件(`application.properties`或者`application.yml`)中配置MongoDB的连接信息,例如: ```properties spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=mydb ``` 3. 创建一个MongoTemplate bean,用于操作MongoDB。可以在Spring Boot的配置类中使用`@Bean`注解创建该bean,例如: ```java @Configuration public class MongoConfig { @Bean public MongoTemplate mongoTemplate(MongoDatabaseFactory mongoDbFactory, MongoMappingContext context) { return new MongoTemplate(mongoDbFactory, context); } } ``` 4. 使用MongoTemplate进行GridFS操作。例如,存储一个文件到GridFS: ```java @Autowired private MongoTemplate mongoTemplate; public void saveFileToGridFS(InputStream fileInputStream, String filename) { ObjectId fileId = mongoTemplate.store(fileInputStream, filename); // 可以根据需要进行一些操作,比如保存fileId到其他集合等 } ``` 5. 检索GridFS中的文件: ```java @Autowired private MongoTemplate mongoTemplate; public GridFSFile getFileFromGridFS(String filename) { Query query = Query.query(Criteria.where(&quot;filename&quot;).is(filename)); return mongoTemplate.findOne(query, GridFSFile.class); } ``` 上述代码只是一个简单的示例,你可以根据实际需求进行更复杂的操作。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值