-->

Spring Data-MongoDb Options for aggregation method

2020-04-15 11:49发布

问题:

How can i set "allowDiskUse" option in aggregation method in spring data-mongodb framework ?

回答1:

The core aggregation abstraction in Spring Data MongoDB is - as the name suggests - Aggregation. It exposes a fluent API to build up a pipeline using aggregation operations.

As of version 1.6.0.M1 the Aggregation class has a ….withOptions(…) method to be used like this:

Aggregation aggregation = newAggregation(…) // build up pipeline in here
  .withOptions(newAggregationOptions().allowDiskUse(true).build());


回答2:

I found spring data-mongodb to have limited support for the aggregation framework, however you can simply use the native library leveraging spring mongo template:

mongoTemplate.getCollection("myCollection").aggregate(pipeline)

See https://github.com/mongodb/mongo-java-driver/blob/master/src/test/com/mongodb/AggregationTest.java on how to setup the List<DBObject> pipeline and how to setup allowDiskUse to true using the AggregationOptions.