Search This Blog

Monday, December 23, 2013

MongoDB supported features

Important note: This article is in relation to online MongoDB course. For more information about the course and other posts describing its content please check my main page here: M101P: MongoDB for Developers course

What is MongoDB data base and what does it support
  • Is a document oriented data base.
  • Has a dynamic schema (db schema can be created dynamically when you run quires, insert or updates documents in collection).
  • Document access is guaranteed to be atomic. Supports atomic operation on a single document. There is no support for transaction on multiple documents or documents across multiple collections.
  • It supports Indexes and Secondary Indexes.
  • Doesn't use SQL language like the one use for RDMS. Instead it uses an API like language for data manipulation and quires.
  • Interestingly the mongo shell is an interactive JavaScript interpreter. 
  • It uses JSON as a document format when interacting with external world.
  • Documents and data base data are stored in a binary BSON format on the disk by the engine although.
  • Data normalization is not a primary goal for document stored in MongoDB. Instead of trying to normalize all data stored in collection in Mongo you are advise to use embedding for 1-1, 1-many, many-1 and many-many relationships. Of course if this is not aligned with your application data access path you can still normalize data and use the _ID as a reference across tables. But this will be client site to enforce this to keep the data consistent. 
  • Support single and multi key indexes.
  • A single file you can save can be up to 16MB in size. To store larger files you can use gridfs.

What is not supported in MongoDB
  • Doesn't' supports joins.
  • Doesn't support RDMS SQL language.
  • Doesn't support transactions across multiple collections.
  • Doesn't support transactions across multiple documents.
  • Doesn't natively support constrains (example are foreign keys in RDMS tables). If you need a mechanism like this you would need to enforce it on the client site. Often you can lower the requirements for this feature when using a smart documents schema with embedded documents.

No comments:

Post a Comment