Агрегация не работает в весенней загрузке 2.0.6 с Монго 4.0 - PullRequest
0 голосов
/ 23 октября 2018

Недавно я обновил свой проект весенней загрузки до 2.0.6 и обновил базу данных до Mongodb 4.0.

Мне пришлось решить некоторые проблемы.Например, теперь Mongo необходимо определить курсор во всех агрегатах, поэтому я добавил метод «withOptions», чтобы включить его.

Все запросы в db выполняются нормально, кроме агрегатов.Во всех этих случаях Mongodb без потерь возвращает пустой массив без ошибок.Тот же самый исходный код раньше работал на Mongo 3.2, теперь вообще не работает.

Конвейер, сгенерированный пружиной, кажется хорошо сформированным, так как я запускаю его в оболочке MongoDB, и он правильно возвращает результаты.

Что я делаю не так?

Мое агрегирование:

Aggregation aggr = newAggregation(AnalyticsMedia.class, 
            match(Criteria
                    .where("hostId").in(hostId)
                    .and("eventTimestamp").gte(from).lte(to)
            ),              
            group("objectId")
                .first("objectType").as("objectType")
                .count().as("countViews")
                .sum("duration").as("totalTime")
            sort(Sort.Direction.DESC, "totalTime")                              
    ).withOptions(new AggregationOptions(false, false, new BasicDBObject("batchSize", 20)));

    AggregationResults<AnalyticsContentsUseIntermediate> groupResults = mongoTemplate.aggregate(aggr, AnalyticsMedia.class, AnalyticsContentsUseIntermediate.class);

return groupResults.getMappedResults();

Мое дерево зависимостей по отношению к монго:

+--- org.springframework.boot:spring-boot-starter-data-mongodb:2.0.6.RELEASE
|    +--- org.mongodb:mongodb-driver:3.6.4
|    |    +--- org.mongodb:bson:3.6.4
|    |    \--- org.mongodb:mongodb-driver-core:3.6.4
|    |         \--- org.mongodb:bson:3.6.4
|    \--- org.springframework.data:spring-data-mongodb:2.0.11.RELEASE -> 1.8.4.RELEASE
...