Dla tych, którzy wciąż próbują znaleźć odpowiedź na to pytanie:
Od wersji spring-data-mongo 2.0.0.M4 (AFAIK ) MongoTemplate
otrzymałem aggregateStream
metoda.
Możesz więc wykonać następujące czynności:
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);