2017-04-03 8 views
0

それはかなり奇妙な質問に見えますが、さらに私はmongodbのコレクションを照会し、ドキュメントを取得する必要があることを説明させてください。コレクションのサイズはTBです。私は定期的に文書のセットのいくつかの操作を行う必要があります(2時間ごとに言うことができます)。操作は非常にシンプルな文書を検索し(条件ごとに)、別のコレクションにコピーして元のコレクションから削除します。問題は検索する文書のサイズを決定できません。私はMongoTemplateを使用しています(私はこれと一緒に行かなければなりません)。私は、文書のサイズがRAMより小さくなければならないと確信しています。しかし、文書の正確なサイズを取得するための手順は何でありますか?タイムアウトや空き領域のエラーは発生しません。'find'クエリのmongo dbドキュメントサイズ制限を取得するには?

+0

集計クエリで** '$ out' **ステージを使用してドキュメントを他のコレクションに書き込む場合、ドキュメントのサイズがRAMを超える場合があります。allowDiskUseパラメータをtrueに設定するだけです。 – felix

+0

Hey。コレクションから取得するドキュメントの数を制限し、パフォーマンスを向上させるためにドキュメントを処理できます。その限界を計算する方法は、メモリがスペースから外に出ないようにする方法です。私のポイントを得ましたか? 16GB RAMと64ビットプロセッサを搭載したデスクトップを例に挙げてみましょう。 –

答えて

0

私はそれはそれは(バイト単位で)特定の文書のサイズを返す

Object.bsonsize(db.students.find()) 
Object.bsonsize(db.students.findOne({*condition*})) 

をごpurpose-を成就だと思います。

+0

ねえ。私はコレクションのサイズを知っています。私はコレクションから取得するドキュメントの数を計算し、より良いパフォーマンスを得るために処理したいと思います。どのような手順に従うことができますか? –

0

1つのmongoオブジェクトの最大オブジェクトサイズは16MBです。私はあなたのシステムのための16MBの問題はないはずです処理すると仮定します。したがって、ソースコレクションから1つのオブジェクトを取得し、それをターゲットコレクションにコピーします。

多くの結果を返すクエリの場合、カーソルを使用して各結果を繰り返し、resultの結果を新しいコレクションにコピーします。

関連する問題