1.连接mongodb
引入maven包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置文件加入mongodb的uri
spring.data.mongodb.uri=mongodb://用户名:密码@ip:port/数据库名?maxPoolSize=1000&replicaSet=rs0
2.使用Aggregation编写复杂的语句
// 条件类
Criteria criteria = new Criteria();
// 使用and进行条件关联
criteria.andOperator(
new Criteria(FormCol.PREFIX + FormCol.WORKSHOP_ZONE_MATERIAL_TYPE_COL).regex(type));
// 对语句进行整合
Aggregation agg = Aggregation.newAggregation(
// 匹配所有条件
Aggregation.match(criteria),
// 根据字段进行分组
Aggregation.group(FormCol.PREFIX + FormCol.WORKSHOP_ZONE_MATERIAL_CODE,
FormCol.PREFIX + FormCol.WORKSHOP_ZONE_MATERIAL_NAME)
// 根据字段求和
.sum(FormCol.PREFIX + FormCol.WORKSHOP_ZONE_WEIGHT)
// 求和出来的别名
.as("num")
);
// 获取语句执行后的结果
AggregationResults<JSONObject> countRes = mongoTemplate.aggregate(agg, Form.FORM_ID_COLLECTION_NAME, JSONObject.class);
mongodb复杂语句建议使用Aggregation进行语句的编写,可以实现分页,分组,求和等大部分复杂的语句。