Spring聚合框架和MongoDB 3.6版

Spring聚合框架和MongoDB 3.6版,spring,mongodb,aggregation-framework,Spring,Mongodb,Aggregation Framework,我们在SpringBoot应用程序版本1.5.3中编写了几个SpringDataMongo聚合查询。编写聚合时,我们使用的是MongoDB 3.4版。一切都很顺利。当我们升级到MongoDB版本3.6时,聚合不再工作。 出现以下错误:com.mongodb.MongoCommandException:命令失败,错误为9:“需要'cursor'选项,但使用explain参数的聚合除外。” 我们加入了解释论点。不再存在异常,但mappedResults集合现在为空。原始结果是存在的 以下是代码的相关

我们在SpringBoot应用程序版本1.5.3中编写了几个SpringDataMongo聚合查询。编写聚合时,我们使用的是MongoDB 3.4版。一切都很顺利。当我们升级到MongoDB版本3.6时,聚合不再工作。 出现以下错误:com.mongodb.MongoCommandException:命令失败,错误为9:“需要'cursor'选项,但使用explain参数的聚合除外。”

我们加入了解释论点。不再存在异常,但mappedResults集合现在为空。原始结果是存在的

以下是代码的相关部分:

Aggregation aggregation = Aggregation
    .newAggregation(matchOperation, unwindOperation, groupOperation, projectionOperation,
        sortOperation, groupOperationPush, sortOperationNext)
    .withOptions(Aggregation.newAggregationOptions().allowDiskUse(true).build());

AggregationResults<OurDomainClass> results = mongoTemplate.aggregate(aggregation, "ourCollection", OurDomainClass.class);


return results.getMappedResults();
我已经了解到,从Spring数据MongoDB版本2.1开始,Spring已经适应了MongoDB版本3.6。然而,在Maven Central,Spring Data MongoDB的版本仅达到2.07


是否有一种变通方法可以应用于聚合代码,也许可以手动将原始结果映射到我们的域类?

稳定版本在maven central中可用,而其他版本则可用,即在编写版本2.1时,您需要在pom.xml中指定存储库:

<dependencies>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>2.1.0.BUILD-SNAPSHOT</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>spring-libs-snapshot</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<logger name="org.springframework.data.mongodb" level="DEBUG"/>
<logger name="org.springframework.data.mongodb.core.MongoTemplate" level="DEBUG"/>