Ok I am new to MongoDB and been reading a book about it, some where it is saying
“Documents larger than 4MB (when converted to BSON ) cannot be saved
to database “
Ok…4MB cap for documents? The thing that confused me is the thing they say in parenthesis : ( when converted to BSON ) : So the size is getting changed when converted to BSON?
because a few line later it is saying:
“To give you an idea of how much 4MB is, the entire text of War and
Peace is just 3.14 MB “
What? Ok now I am confused. Help Me!
In theory, the BSON file also contains the field names which take up space and some overhead. In general, the overhead is not more than a few bytes. Besides some document overhead (a few bytes), each value stored also has some additional storage bytes. For a simple string it’s 6 bytes extra (1 for the type, 4 for the length and 1 for a trailing \0 character). You can see the overhead on the bsonspec.org website. The length of a simple string itself doesn’t change “when converted to BSON”, but the addition of the length etc makes it a tiny bit larger. Most of the drivers have a helper function to figure out how large a document would be. In PHP you would do:
Which in this case prints
39.Also, the current document limit is 16 MB- it has changed since the book was written.