Mongodb 查询 Spring mongoTemplate

Mongodb query to Spring mongoTemplate

我有这个 mongo 查询:

    db.getCollection('My_collection_name').aggregate([
   { $project: { warehouses: { $objectToArray: "$outputVariables" } } },
   { $unwind: "$warehouses" },
   { $group: { _id: "$warehouses.k" }}
])

有人可以帮我翻译成 spring mongo模板吗?

谢谢

查询应该写成如下:

import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
...

AggregationOperation project = project()
        .and(ObjectToArray.valueOfToArray("outputVariables")).as("warehouses");

AggregationOperation unwind = unwind("warehouses");

AggregationOperation group = Aggregation.group("warehouses.k");

Aggregation aggregation = Aggregation.newAggregation(
                project,
                unwind,
                group);

String collectionName = "My_collection_name";
System.out.println("aggregation=" + aggregation);
this.mongoTemplate.aggregate(aggregation, collectionName, Output.class);

它生成输出:

aggregation={ "aggregate" : "__collection__", "pipeline" : [{ "$project" : { "warehouses" : { "$objectToArray" : "$outputVariables" } } }, { "$unwind" : "$warehouses" }, { "$group" : { "_id" : "$warehouses.k" } }] }