How is the data in a MongoDB database stored on disk?

MongodbDatabase

Mongodb Problem Overview


I know that MongoDB accepts and retrieves records as JSON/BSON objects, but how does it actually store these files on disk? Are they stored as a collection of individual *.json files or as one large file? I have a hunch as to the latter, since the MongoDB docs state that it works best on systems with ext4/xfs, which are better at handling large files. Can anyone confirm?

Mongodb Solutions


Solution 1 - Mongodb

A given mongo database is broken up into a series of BSON files on disk, with increasing size up to 2GB. BSON is its own format, built specifically for MongoDB.

These slides should answer all of your questions:

http://www.slideshare.net/mdirolf/inside-mongodb-the-internals-of-an-opensource-database

Solution 2 - Mongodb

MongoDB stores the data on the disk as BSON in your data path directory, which is usually /data/db. There should be two files per collection there, collection.0, which stores the data (and that integer is then incremented as needs be) and collection.ns which stores the namespacing metadata for the collection.

Solution 3 - Mongodb

Detailed documentation of the BSON format can be found here: http://bsonspec.org/

Solution 4 - Mongodb

Up to mongodb 3.0 http://blog.mongolab.com/2014/01/how-big-is-your-mongodb/ If you turn on wiredtiger storage engine in MongoDB 3.0 it will use wiredtiger storage model http://docs.mongodb.org/v3.0/core/storage/#storage-wiredtiger

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMark LeMoineView Question on Stackoverflow
Solution 1 - MongodbbrianzView Answer on Stackoverflow
Solution 2 - MongodbJamie RumbelowView Answer on Stackoverflow
Solution 3 - MongodbMGriesbachView Answer on Stackoverflow
Solution 4 - MongodbVikas JadhavView Answer on Stackoverflow