在使用jongo查询allowDiscUse: true时,有没有添加MongoDB的方法?我发现这样的错误-“`Sort超过了内存限制104857600字节,但没有选择进入外部排序。中止操作。Pass :true to opt in可以以这样的方式阻止,这样您的聚合看起来就像
aggregate([{$sort:...},{$$skip:...}...],{allowDiscUse: true})但据我所见,Jongo中的Aggregate类只将管道应用于自身,然后可以使用as方法执行管道。
MongoCollection catalogCollection = mongoHolder.getCatalogJongo(param.id, false);
Aggregate aggregation = catalogCollection.aggregate("{$match: #}", query.build());
aggregation.and("{$skip: #}", param.offset);
aggregation.and("{$limit: #}", param.limit);
List<BasicDBObject> result = aggregation.as(BasicDBObject.class);有没有办法把这个参数传递给蒙戈,而不从Jongo切换到其他东西?
发布于 2016-04-17 20:19:26
您可以使用选项方法:
AggregationOptions options = AggregationOptions.builder().allowDiskUse(true).build());
List<BasicDBObject> result = collection.aggregate("...").options(options).as(BasicDBObject.class);请参阅Jongo聚合测试类,以查看工作示例https://github.com/bguerout/jongo/blob/20ed6e79c0801ae1af2dc3d4fee240e201ad93dd/src/test/java/org/jongo/AggregateTest.java#L120
https://stackoverflow.com/questions/36642619
复制相似问题