Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Document Size in MongoDb

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?

like image 665
Mr. Demetrius Michael Avatar asked Sep 30 '12 00:09

Mr. Demetrius Michael


Video Answer


1 Answers

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.

like image 136
Stennie Avatar answered Oct 19 '22 21:10

Stennie