5

将来的に DynamoDB に切り替えることを考えていますが、KB 単位で課金されるため、ドキュメントが 1KB 未満であることを確認したいと考えています。コレクション内のドキュメントのサイズを簡単に知る方法はありますか?

4

1 に答える 1

19

一般的なガイドとして、 collectionによって報告された値を使用して、コレクションcollname内のドキュメントの平均サイズを確認できます。avgObjSizestats()

db.collname.stats()

大きなドキュメントを見つけてカウントするには、次のようなものを使用できます。

var maxSize = 1024;
var bigDocs = 0;
db.collname.find().forEach(
    function (doc) {
        var docSize = Object.bsonsize(doc);
        if (docSize >= maxSize) {
            bigDocs++;
            print(doc._id + ' is ' + docSize + ' bytes');
        }
    }
)
print("Found " + bigDocs + " documents bigger than " + maxSize + " bytes")

これらの例はどちらも MongoDB BSON表現を使用しているため、他のデータベースで同じデータを表現するために必要なサイズとは異なることに注意してください。

于 2012-09-30T03:17:58.553 に答える