Modern NoSQL offerings commonly promote themselves as being "schema-less", as if this is a great feature.
For most use cases, though, there is at very least an "implied" schema for the information stored. Just because the schema is not enforced does not mean that it does not exist.
From the standpoint of 1Schema.com, we look at modern NoSQL offerings as instead providing "optional enforcement of schema".
For example, think of using MongoDB out of the box (no enforcement) vs. using MongoDB with Mongoose ODM (almost SQL-like enforcement).
From a flexibility stand-point, the strength of NoSQL is actually more based on its ability to embed sets of nested information (which we will discuss in future posts). Still, this embedded information probably also has an implied schema.
|This is a 1Schema schema for Sales Orders.|
So next time you start a NoSQL project, as yourself:
- Do I care about collaborating with other engineers on the project?
- Do I care about communicating what data is supposed to be stored?
- Do I expect certain values to exist when I use the data?
- Do I care about managing how data is duplicated within the database?
... For the last point, check back to see how 1Schema.com can help clarify how and why data is duplicated within your NoSQL database.