MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Diffuser le résultat d'une opération d'agrégation à l'aide de spring-data-mongodb

Pour ceux qui essaient encore de trouver la réponse à cette question :

À partir de la version 2.0.0.M4 de spring-data-mongo (AFAIK ) MongoTemplate a obtenu un aggregateStream méthode.

Vous pouvez donc effectuer les opérations suivantes :

 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);