If you come from the world of relation database then you certainly know that the best way to keep your data and design your scheme is to keep them in third normal form 3NF, you can keep your MongoDB also in the third normal form but in Mongo the best way for your scheme is to design your database around your application in other world you should design your database in way by taking in consideration your application as well like what piece of data is written all the time, what piece of data is read all the time and you can organize your data in Mongo to meet your application needs.
Even though Mongo does not have any scheme in database level but when you’re going to make database for any app and software you need to take following point in consideration as in Mongo everything is in Document or collection level and you design your application around those concepts.
Rich Documents.
MongoDB supports rich documents in other word it’s not just a tabular data in Mongo you can store and manage an array of items, or a value for certain key can be an entire new document and this will allow us to pre-join data as you know that MongoDB does not support Joins and if you need joins you must do this in application level, and for that you need to pre-plane while creating your documents.
Pre joins and Embedded Data
You might think why MongoDB does not support joins and the reason is that it’s because joins are very hard to scale and MongoDB is all about scalability so to get that it loses the Joints as result you must pre-think about designing your documents scheme and if you think you might use data from different collection it’s better to embedded them inside the same document or even use an array of data.
No constraints and Transaction
And there are no constraints in MongoDB what I mean by constraints is that if you came from relation database you might know that you can add foreign key to your table data to be connected to some other tables but in mongo you cannot use that as it’s not supported, but you can always embed the data you want to join in the same collection.
Mongo does not support any Transactions but instead it has something called Atomic Operation within one collection of data it’s almost similar to Transaction processing in relation database.
No Declared Scheme
There is no Scheme in Mongo but there is good chance that your documents have scheme in Mongo what I mean by that is that every document created on Mongo will have same design and structure even though you won’t be making any changes on that but it’s important to note that as you designing your scheme in Mongo you need to take these points in consideration which will help you to get better design in your collections.
Scheme Design Approach in MongoDB