1

gormを使用してMongoDBからドキュメントをチャンクで削除する方法は? findAllfindAll によって返されるドキュメントの数が膨大になるため、その後に delete を実行しても機能しません。ヒープの問題が発生します。

Domain クラスを使用してネイティブの mongo db コマンドを送信したいと考えていました。すべてのドメイン オブジェクトを JVM ヒープにフェッチしてから、それらを削除することを繰り返したくありません。代わりに、削除の基準をmongoに送信し、削除を処理させたいと思います。

低レベルのクエリを使用したバッチ削除に関する指針はありますか? または他の手段?

4

2 に答える 2

2

mongo-gorm/gmongo のlow-levelAPIを使用します。

SomeDomain.collection.remove( [ date:[ $lt:now ] ] )

詳細はユーザーガイドをご覧ください

于 2015-07-29T20:26:30.087 に答える
0

以下のアプローチは、削除コマンドをMongoDBに送信するのに役立ちました。

MyDomainClass.collection.remove(new BasicDBObject("property", valueOrCondition))

私の要件は、特定のデータよりも古いすべてのドキュメントを削除することでした。以下のコードは、私が望むものを達成するのに役立ちました:

MyDomainClass.collection.remove(new BasicDBObject("createdDate", new BasicDBObject('$lt', createdDateCutOff)))
于 2015-07-29T19:40:13.227 に答える