IはMongoのDBに大量のデータを処理し、MongoのDBに再度格納するためのスプリングバッチフレームワークを使用していMongo Aggregate Javaドライバを使用して大きなデータをクエリしますか?
コードは以下の通りである:より少ないデータについて
Aggregation agg = newAggregation(
project("field1")
//projection on few fields
group("field1")
//group opeartion
project(
// again project on grouped result
)
).withOptions(newAggregationOptions().allowDiskUse(true).build());
AggregationResults<BeanName> agreatiR = dbTemplate.aggregate(agg,collectionName,BeanName.class);
(Iは100Kでテストしています)集約フレームワークはうまく動作しますが、2Mでは16MBの制限を超えています。
私は最初にそれが必要とされていない操作を$アウト使用したくないとも春データに$を使用する任意のAPIが思わなかった私ができるようになりますカーソルを返すので読んだことがある。また
をモンゴ超過したサイズの制限が、それをサポートするどんな春のデータのmongo APIもないようです。
モンゴDBバージョン:2.6
モンゴドライバのバージョン:3.2.0
、それが動作するようにするために100kのレコードにあなたの処理を分割してみてください。 – jeorfevre
分割しないで同じデータを扱うソリューションを手に入れたい場合 –
itemprocessorのコードを提供できますか?一度に処理するデータの量 – jeorfevre