Document Size in MongoDb

document, mongodb

Solution

As a general guide you can check the average size of documents in a collection collname using the `avgObjSize` value reported by collection `stats()`:

db.collname.stats()

To find and count large documents you can use something similar to:

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")

Note that both these examples are using the MongoDB BSON representation, which will vary from the size required to represent the same data in other databases.

Problem

Thinking of switching to DynamoDB in future, but want to make sure my documents are under the 1KB, as they charge per KB. Is there a quick way to know how large a document is in a collection?

Original source