Just some note about disavantages when you work with schemaless DBMS.
- Schemaless does not mean no-schema. Your application would never be schema-less. Or you are maintaining the schema at code level, you are maintaining the schema in different meta format.
- Schemaless can make you lazy. Not designing the data model schema at the first stage can lead to weak or inconsistent data model in later stage of the application.
- Sharing the same storage / database with other applications would be painful. You will never sure that other applications will not write junk in your database.
- You may eventually duplicate the schema across applications. Maintaining the schema would be a pain in the ass.