NoSQL databases have as many schemas as there have been changes to the model.  Everytime you make a change, and are keeping old data, you have another schema.  Your code then has to be aware of every schema that has ever existed.  Over time this becomes more and more painful and error-prone.<p>In a relational database, you have one schema and you have to convert&#x2F;update your data to match that schema whenever it changes.<p>I&#x27;ve done one big project many years ago that used NoSQL storage of heterogeneous &quot;document&quot; types -- a perfectly reasonable use-case for the technology -- and I wouldn&#x27;t do it again.  Although at the time it seemed crazy to create different tables to hold this data it would have made that code so much simpler now.