За тези, които все още се опитват да намерят отговора на този въпрос:
От spring-data-mongo версия 2.0.0.M4 нататък (AFAIK ) MongoTemplate
получи aggregateStream
метод.
Така че можете да направите следното:
AggregationOptions aggregationOptions = Aggregation.newAggregationOptions()
// this is very important: if you do not set the batch size, you'll get all the objects at once and you might run out of memory if the returning data set is too large
.cursorBatchSize(mongoCursorBatchSize)
.build();
data = mongoTemplate.aggregateStream(Aggregation.newAggregation(
Aggregation.group("person_id").count().as("count")).withOptions(aggregationOptions), collectionName, YourClazz.class);