0

allowDiscUse: truejongo を使用して MongoDB にクエリを実行するときに追加する方法はありますか? そのようなエラーが見つかりました - `ソートは104857600バイトのメモリ制限を超えましたが、外部ソートを選択しませんでした。操作を中止しています。allowDiskUse:true を渡してオプトインすることは、集計が次のようになるような方法で防ぐことができます

aggregate([{$sort:...},{$$skip:...}...],{allowDiscUse: true})

しかしAggregate、Jongo のクラスを見る限り、パイプラインはそれ自体にのみ適用され、メソッドで実行できます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 から別のものに切り替えることなく、そのパラメーターを mongo に渡す方法はありますか?

4

1 に答える 1

1

オプションメソッドを使用できます:

AggregationOptions options = AggregationOptions.builder().allowDiskUse(true).build());

List<BasicDBObject> result = collection.aggregate("...").options(options).as(BasicDBObject.class);

Jongo Aggregate テストクラスを参照して、動作する例を確認してください

于 2016-04-17T20:19:26.137 に答える