So app vendors can leave the database wide open on the Internet, for anyone to pull their customer list or generate their own keys.
I wanted to use a no sql database at the beginning. However, I prepared an interface first and implemented as MongoDB. We can implement the interface with PostgreSQL for example. I really appreciate PRs :) Here is the interface we can implement for other databases.
I thought this also. SQLite as a default would have been nice.
Because that's the database the dev picked to use?
Because it's webscale, duh
Why !MongoDB?
Because MongoDB is a document store and you really only need a key/value store for this.
Also because MongoDB started life preferring speed vs durability, which is a bad look for a database. They may have fixed that now, but I cannot forgive them for that.
"The best tool is the one I know".
Except when it's not. :)
I don't compare HTML vs. C here, obviously I am talking about databases. All personal feelings aside, there is no technical reason to NOT use MongoDB as a key value store if one has experience with it, because after release comes maintenance and learning a new tool while fixing production problems doesn't make sense to me.
I remember reading on here at one time that under some scenarios your data doesn't come out the way you put it in, or something to that effect.