My current thinking is to consider postgres as the default choice, especially for an MVP. It can handle just about any MVP-level scenario and helps you avoid over-engineering.
But if you really do need NoSQL to deal with scalability or more advanced requirements, I like DynamoDB. I like it not because it’s user-friendly (it’s not very), but because its limitations are very clear and out-front, and if you try to do something it’s not suited for, you’ll quickly realize it’s hopeless.
Mongo is the opposite—it gives you the impression that you can use it for all kinds of things, and it feels easy in the beginning. But without careful planning, it will lead you merrily into awful traps, because its underlying limitations are glossed and patched over by the api rather than being made explicit.
IMO the use case for mongodb in its heyday was great support for schema-less storage, which was perceived as a way to give your team velocity. And also great support for operating a cluster over primary keys.
(The performance story vs SQL is overstated -- a lot of their early benchmarks were from tuning down safety margins like fsync. You can do that in SQL DBs too).
postgres has pretty good json support these days and mysql is getting there (managed mysql tends to lag a version).
Are there any forks with momentum?