mongodb中有两个集合 collection1 和 collection2 ,通过device_id实现关联查询
LookupOperation lookupOperation = LookupOperation.newLookup()
.from("collection2")
.localField("device_id")
.foreignField("device_id")
.as("base_data");
Criteria unitCriteria = Criteria.where("base_data.unit").is(unit);
Aggregation aggregation = Aggregation.newAggregation(lookupOperation, match(unitCriteria));
AggregationResults<Data> results = mongoTemplate.aggregate(aggregation, "collection1", Data.class);
return results.getMappedResults();
使用List来创建聚合操作
List<AggregationOperation> operations = new ArrayList<>();
LookupOperation lookupOperation = LookupOperation.newLookup()
.from("collection2")
.localField("device_id")
.foreignField("device_id")
.as("base_data");
Criteria unitCriteria = Criteria.where("base_data.unit").is(unit);
operations.add(lookupOperation);
operations.add(Aggregation.match(unitCriteria));
Aggregation aggregation = Aggregation.newAggregation(operations);