У меня есть требование отфильтровать документ в mongodb с использованием данных Spring, которые содержат объединенные массивы массивов. Я использую следующий запрос агрегации в оболочке mongo, и он работает нормально. Но когда я запускаю это с помощью операции агрегации springdata, я получаю пустой ответ. Рабочий запрос mongo:
db.searchResource.aggregate({$match:{"_id" : ObjectId("53cf4e3dae92ac6561807f6d")}},{$project:{"rssSearchResponse.journeys":1}},{$unwind : "$rssSearchResponse.journeys"},{$match:{"rssSearchResponse.journeys.stops":0}});
Код данных Spring, который я использую и не работает:
TypedAggregation<SearchResource> aggregation = Aggregation.newAggregation(SearchResource.class, Aggregation.match(new Criteria("_id").is(new ObjectId(searchId))),
Aggregation.project("rssSearchResponse.journeys"),
Aggregation.unwind("rssSearchResponse.journeys"),
Aggregation.match(new Criteria("rssSearchResponse.journeys.stops").is(0))
);
AggregationResults<SearchResource> result = mongoOperations.aggregate(aggregation, JourneyInformation.class);
Я попытался сломать эту агрегатную функцию, и она может проецировать rssSearchResponse.journeys, но после $ unwind возвращает пустой результат.
Любая помощь высоко ценится.