Мы написали несколько запросов Spring Data Mongo Aggregation в нашем приложении Spring Boot (версия 1.5.3).Когда мы писали агрегаты, мы использовали MongoDB версии 3.4.Все работало нормальноКогда мы обновили MongoDB до версии 3.6, агрегаты перестали работать.Возникает следующая ошибка: «com.mongodb.MongoCommandException: команда завершилась с ошибкой 9: требуется опция« курсор », за исключением агрегирования с аргументом объяснения».
Мы добавили аргумент объяснения.Больше нет исключения, но коллекция 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 Data MongoDB версии 2.1 Spring адаптировался к MongoDB версии 3.6.Однако в Maven Central версия Spring Data MongoDB достигает только 2.07.
Есть ли обходной путь, который мы можем применить к нашему коду агрегации, возможно, каким-то образом отобразить необработанные результаты вручную в наш класс домена?