Bagi mereka yang masih mencari jawaban untuk ini:
Dari spring-data-mongo versi 2.0.0.M4 dan seterusnya (AFAIK ) MongoTemplate
mendapat aggregateStream
metode.
Jadi, Anda dapat melakukan hal berikut:
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);