MongoTemplate是Spring Data MongoDB提供的对MongoDB数据操作的封装,如果你想实现多表联合查询,你可以使用$lookup操作符。该操作符允许在单个查询中将来自不同集合的数据合并在一起。
在MongoTemplate中使用$lookup操作符的示例如下:
Aggregation agg = Aggregation.newAggregation(
Aggregation.lookup("collection2", "field1", "field2", "alias"),
Aggregation.match(Criteria.where("field3").is("value3"))
AggregationResults<Document> result = mongoTemplate.aggregate(agg, "collection1", Document.class);
List<Document> resultList = result.getMappedResults();
在上面的代码中,$lookup操作符被应用到collection1
,并将其与collection2
进行联合查询,使用field1
作为关联字段,并将结果存储在别名alias
中。最后使用match
操作符按照field3
的值进行过滤。