Мне сложно определить, как написать реализацию данных весны для следующего запроса агрегации. Некоторые фоне моей проблемы можно найти hereSpring Data эквивалент запроса агрегирования
db.asset.aggregate([{$unwind:"$folderIds"}, {$group:{_id: "$folderIds",assets:{$push: {assets_id:"$_id",display_name:"$displayName"}}}}])
у меня ниже фрагмент кода до сих пор
AggregationOperation unwind = Aggregation.unwind("folderIds");
AggregationOperation groupFolderIds = Aggregation.group("folderIds")
.push(new BasicDBObject().put("assetId", "$_id")).as("assets");
Aggregation aggregation = Aggregation.newAggregation(unwind, groupFolderIds);
AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "asset", Map.class);
Я знаю, что аргумент .С() должна быть установлена, но я не» не знаю как. В результате я хотел бы извлечь несколько полей из документа активов. Помощь приветствуется. Спасибо.
Спасибо, это сработало. У вас есть пример использования «типизированного» класса вывода? Например, если я хочу использовать AssetStats.java, как это должно выглядеть? –
На самом деле я понял, как использовать «типизированный» выход. Последняя строка в приведенном выше java-коде должна выглядеть так: AggregationResults results = mongoTemplate.aggregate (агрегация, «актив», AssetStats.class); –