mongotemplate多表联合查询

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的值进行过滤。

  •