Hacker News new | ask | show | jobs
by someguy1233 3527 days ago
Why mongo is terrible: http://www.mongodb-is-web-scale.com/

Mongo is a bad choice for 99% of projects. Unless you're 100% sure your data is unstructured and will never ever relate to anything else, it's probably bad.

Mongo is designed for unstructured data. That is data which has a very loose relationship to any other object, and data which changes often or is unpredictable. To top it off, Mongo doesn't have transactions. Without transactions, you have to implement them by hand with something like Redis, which is rather iffy.

You almost always have structured data. A wish list would probably relate to products, which relate to merchants such as Amazon, Newegg, Ebay, etc.

Those relationships are a pain to express in Mongo. In-fact it even ends up being slower to express them in mongo, because of it's lack of JOINs, since they don't expect you to have relations.

I personally recommend MariaDB (MySQL fork, included by default on most linux distros now to replace mysql-server). Despite it's poor reputation, it's used (in some form) by practically every big company, including Facebook and Google.

PostgreSQL is another great option. I've found it a bit more difficult to find guides for Postgres, which is why I recommend it second to MariaDB/MySQL.

Postgres is not flawless, it has awkward quirks, like the fact you cannot sanely upgrade postgres versions without exporting all of your data, and then re-loading it again. However, it is regarded as the most powerful open source database, and possibly the most reliable database.