Reputation: 4628
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?
Upvotes: 77
Views: 94691
Reputation: 41
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
Upvotes: 3
Reputation: 354
Detailed documentation of the BSON format can be found here: http://bsonspec.org/
Upvotes: 5
Reputation: 7448
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
Upvotes: 44
Reputation: 5095
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.
Upvotes: 27