spring-data-mongo aggregate结果大于16m时
可以使用游标(指针)方式返回结果
public List<DBObject> aggregateCURSOR(List<DBObject> pipeline) {
List<DBObject> list = new ArrayList<DBObject>();
Cursor output=MongoTemplate.getCollection("collectionName").aggregate(pipeline,
//outputMode(AggregationOptions.OutputMode.CURSOR) 使用游标方式返回结果
//allowDiskUse(true).使用磁盘
AggregationOptions.builder().outputMode(AggregationOptions.OutputMode.CURSOR).allowDiskUse(true).build());
while (output.hasNext()) {
DBObject obj=output.next();
list.add(obj);
}
return list;
}