I know I am new! =)
But I disagree.
The strength of a No-SQL database is the ability to add Ad Hoc data.
While I do appreciate being able to restrict or define some of the
columns (with smething like MongoEngine) I still need the ability to
add data without a schema.
If everything was to be concrete, i.e. schema, I may pause and wonder
why I would need a NoSQL DB over a traditional relational model.
Perfect example of mixing:
We use SQL to store session and hard asset entries.
We use Mongo to provide schema-less access to the asset. We don't care
what is in the asset on the sql side, only that we have an asset, and
we can relate it to other assets.
At the top level, the traditional model is blazing fast to find
parents/children/edges
At the lower access points we can get full data about an asset and
query the sub-sets from the top level model to find correlating data
without having tons of bridge tables or gobs of columns in the asset
table.
The best of both (for us).
BUT, that also requires that at the low level we are free to define
anything we want in the asset's document.
Locking it into a schema would sandbox us just as if we were using a
traditional model.
HTH
Cheers.