mongodb,聚合查询命令格式:db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)示例:db.COLLECTION_NAME.aggregate([ { $match : { status : { $ne : 4 } } } { $group : { _id : { proj...
mongodb,聚合查询
命令格式:
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
示例:db.COLLECTION_NAME.aggregate(
[
{ "$match" : { "status" : { "$ne" : 4 } } }
{ "$group" : { "_id" : { "projectTreeName" : "$projectTreeName", "batchName" : "$batchName" } } },
{ "$sort" : { "_id.projectTreeName" : -1 } },
{$skip:2},
{$limit:3}
])
解读:
mongodb的聚合查询有个管道的概念,先执行完上一个管道,执行结果流入下一个管道。
上面这个例子就是:先执行 $match 再进入 $group 进行分组,然后对分组结果进行$sort排序,最后对查询结果进行分页设置。
java
我使用的是springboot 需要添加mongodb的依赖jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
application.properties的配置文件
spring.data.mongodb.uri=mongodb://username:password@localhost:27017/database
配置完成后,可以继承MongoRepository进行基本增删改查操作,这次主要讨论分组查询。
分组查询使用mongotemplate 直接使用@Autowired进行自动装配就行
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
@Autowired
private MongoTemplate mongoTemplate;
//方法中调用的newAggregation还有match,group,sort等管道函数都是org.springframework.data.mongodb.core.aggregation.Aggregation提供的静态方法
Aggregation agg = newAggregation(
match(new Criteria("status").ne(4)),
group("batchName" ,"projectTreeName"),
sort(new Sort(Sort.Direction.DESC,"projectTreeName")),
skip(0L),
limit(10)
);
AggregationResults<Damweb_ClusterJob_jobs> aggregationResults = mongoTemplate.aggregate(agg,"COLLECTION_NAME", Damweb_ClusterJob_jobs.class);
编程基础网
本文标题为:java mongodb groupby分组查询
基础教程推荐
猜你喜欢
- Windows安装Maven并配置环境的详细步骤 2023-07-15
- 一分钟掌握Java ElasticJob分布式定时任务 2023-07-15
- JavaWeb三大组件之一的Filter详解 2023-01-13
- MyBatis3源码解析之如何获取数据源详解 2023-01-29
- 详解SpringBoot实现事件同步与异步监听 2023-01-24
- Spring Boot结合ECharts案例演示示例 2023-01-24
- JSP之表单提交get和post的区别详解及实例 2023-07-31
- Java Kafka实现延迟队列的示例代码 2022-09-03
- Springboot深入讲解nocos的整合与使用 2023-03-10
- 将BigDecimal转成字符串为科学计数法的踩坑记录 2023-01-17
