I always supposed that document databases were based on object databases from the early 90s... And that the "NoSQL" craze was simply a continuation of that progression. I mean there is a difference between NoSQL and no schema. The early object databases had schemas. The reason they wanted to abandon SQL was because they believed that they never wanted relational data: they just wanted a persitance layer for their business models.
I might be wrong about that because I pretty much ignored DBs in the late 90's and 00s, so I never really followed what was happening. However, one thing I'm absolutely sure about: MongoDB had very few features that were really novel. I'm not really sure why people think everything started there (especially someone who knows about 4GL ;-) )
First we had an xml craze - xml had to be used everywhere, including communicating with the browser - see AJAX. Then people realised that xml was very inconvenient for the browser and for human readability, while json fit the bill perfectly. Then, it was json craze - why not use it for your dB??
As a serialization format, JSON is horrible. Way too loose regarding formatting and way too much noise. All that is typically needed is a standard text format for relational data. I.e. a fixed CSV.
The only "advantage" to JSON is that it maps directly to the object trees most developers use in their scripted programs (which is misguided IMHO).
Not sure I would call CSV a "standard text format" - I've seen many many problems over the years with badly formed CSV files and bad Unicode handling. CSV appears to be an "almost standard" where 98% of the time it is fine and the remaining 2% are an utter nightmare.
Yes, CSV in the wild is an absolute mess. It was made an RFC standard at some point but even that was quite unclear if I recall correctly. That's why I wrote "a fixed CSV".
after 2010 there was also the surge of single page application frameworks a-la Angular.js, my take is that having a JSON-native database with REST interface meant that anybody could whip up a nice angular frontend with Mongo as its only backend.
Sure, business logic in the browser, antipatterns all over the place, security be damned, but if it meant that the business could live at all, then people got on with it.
I might be wrong about that because I pretty much ignored DBs in the late 90's and 00s, so I never really followed what was happening. However, one thing I'm absolutely sure about: MongoDB had very few features that were really novel. I'm not really sure why people think everything started there (especially someone who knows about 4GL ;-) )