7

MongoDB シェルで特定のクエリを満たすすべてのドキュメントのサイズを取得する方法はありますか?

特定のデータを外部メディア デバイスにダンプするオプションを使用するツールmongodump(ここを参照) を作成しています。queryただし、ダンプを開始する前に、すべてのドキュメントが外部メディア デバイスに収まるかどうかを確認したいと思います。そのため、クエリを満たすすべてのドキュメントのサイズを取得したいと考えています。

hereObject.bsonsizeに記載されている方法は認識していますが、1 つのドキュメントのサイズしか返さないようです。

4

2 に答える 2

14

これが私が見つけた答えです:

var cursor = db.collection.find(...); //Add your query here.
var size = 0;
cursor.forEach(
    function(doc){
        size += Object.bsonsize(doc)
    }
);
print(size);

ドキュメントのサイズをバイト単位でかなり正確に出力する必要があります。

コマンドを 2 回実行しました。最初は 141,215 個のドキュメントがあり、一度ダンプすると、合計で約 108 MB になりました。コマンドの出力とディスク上のサイズの差は 787 バイトでした。

コマンドを 2 回目に実行したときは、35 914 179 個のドキュメントがあり、一度ダンプすると、合計で約 57.8 GB になりました。今回は、コマンドとディスク上の実際のサイズがまったく同じサイズでした。

于 2015-11-19T14:45:05.793 に答える