| Almost all statements about MongoDB are wrong. > You know exactly what your app needs to do, up-front No one does. Mongodb still perfectly fits. > You know exactly what your access patterns will be, up-front This one also no one knows when they start. We successfully scaled MongoDB from a few users a day to millions of queries an hour. > You have a known need to scale to really large sizes of data This is exactly a great point. When data size goes to a billion rows, Postgres is tough. MongoDB just works without issue. > You are okay giving up some level of consistency This is said for ages about MongoDB. Today, it provides very good consistency. > This is because this sort of database is basically a giant distributed hash map. Putting MongoDB in category of Dynamo is a big mistake. It's NOT a giant distributed hash map. > Arbitrary questions like "How many users signed up in the last month" can be trivially answered by writing a SQL query, perhaps on a read-replica if you are worried about running an expensive query on the same machine that is dealing with customer traffic. It's just outside the scope of this kind of database. You need to be ETL-ing your data out to handle it. This shows the author has no idea how MongoDB aggregation works. I don't want fresh grads to use SQL just because they learn relations (and consistency and constraints and what not). It's perfectly fine to start on MongoDB and make it the primary DB. |
You’ve been led astray. You can handle a billion rows on a developer laptop, let alone a production grade instance.