如何使用 Spring 数据 mongodb 将字段数组添加到 ProjectionOperation

How to add Array of Fields to ProjectionOperation with Spring data mongodb

我在 mongo 中有这部分查询 return 字段数组。

{ $project:
    {
        ...
        result:
            [
                { sumShotsOfOneAttempted: '$sumShotsOfOneAttempted1', sumShotsOfOneFailed: '$sumShotsOfOneFailed1'},
                { sumShotsOfOneAttempted: '$sumShotsOfOneAttempted2', sumShotsOfOneFailed: '$sumShotsOfOneFailed2'}
            ]

    }
}

我正在尝试使用 ProjectionOperation 使用 spring-mongodb 构建相同的对象:

ProjectionOperation projectStage = Aggregation.project("fieldId");

并且我想将数组中的字段添加到这个projectStage中,但我只知道如何将一个一个添加为projectStage.and("sumShotsOfOneAttempted1").as(sumShotsOfOneAttempted);而不是数组。

我对 spring.mongodb 的依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

有什么想法吗?

正如你提到的其他post

ProjectionOperation projectionOperation = Aggregation.project("matches");

for(String typeOfShots : typesOfShots) {
    projectionOperation = projectionOperation.and("sum"+typeOfShots+"Attempted").as("sum"+typeOfShots+"Attempted");
}