参见:原文链接:https://blog.csdn.net/weixin_44530530/java/article/details/91901631
依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
两表联查
/** * 两表联查 * * @return */ @Override public Object findStudentAndGrade() { LookupOperation lookupOperation=LookupOperation.newLookup(). from("grade"). //关联从表名 localField("gradeId"). //主表关联字段 foreignField("_id").//从表关联的字段 as("GradeAndStu"); //查询结果名 //带条件查询可以选择添加下面的条件 // Criteria criteria=Criteria.where("studenAndgrade").not().size(0); //只查询有结果的学生 // Criteria qqq=Criteria.where("name").regex("文");//只查询名字中带有文的 // AggregationOperation match1= Aggregation.match(qqq); // AggregationOperation match = Aggregation.match(criteria); // Aggregation counts = Aggregation.newAggregation(match1,lookupOperation,match).; Aggregation aggregation=Aggregation.newAggregation(lookupOperation); List<Map> results = mongoTemplate.aggregate(aggregation,"student", Map.class).getMappedResults(); //上面的student必须是查询的主表名 System.out.println(JSON.toJSONString(results)); return results; }