Ask HN: Should I not use MongoDB?
Hi guys, I'm a mostly front end dev who's built some mildly popular applications where Mongo has worked fine as a data store. By mildly popular we're talking maybe 1 query/s. Today, I just launched a product (www.bliss.flights), and it's unexpectedly gone viral, we have more signups than I could have ever imagined.
I peruse HN a lot so I've read a lot of the recent articles about how Mongo has failed a lot of startups as a production DB. Now that we're figuring out the technology stack for this, I don't want to do work that is going to have to be redone later.
Unfortunately, I've only ever used Mongo, so I'm used to mongoose and it's syntax. Would you guys use a different datastore for something like this, and if so, what? I've written maybe a few lines of SQL in my entire life so not so bullish on learning something new as it will really slow us down!
Really appreciate it.
27 comments
[ 2.9 ms ] story [ 27.9 ms ] threadIf you're on ec2, the i3 instances have very fast nvme instance storage at a reasonable (cloud) price.
If you're just using a document DB instead of a relational DB, you won't have a hard time moving away from Mongo. There just isn't that much to learn.
Even better, there are various databases that actually have Mongo compatibility[1][2], but internally will be more reliable and scalable.
If you have the dev bandwidth, look into switching now and maybe give it a try in your dev environment.
1. https://www.torodb.com/
2. https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-int...
Companies all over the globe are betting their businesses on MongoDB and succeeding.
e.g. most recently Ticketek
http://www.theaustralian.com.au/business/technology/mongo-mi...
https://www.mongodb.com/who-uses-mongodb
I don't see a ton of hatred and fear from Cisco, Facebook and Google.
I dig what they've done, especially facebook, with MongoDB. Reconsider 2012 opinions and read about 2017's MongoDB.
It still doesn't make me want to use it. Relational data is better for most applications, Redis is better for many others, and I can have both documents and relational data in the same database with PG[1].
It seems like many other people with Mongo experience feel the same way[2].
1. http://www.aptuz.com/blog/is-postgres-nosql-database-better-...
2. https://news.ycombinator.com/item?id=15125984
Luckily, I don't care what "companies all over the globe" are doing. I'm paid to know the difference between cargo-cult decisions and good decisions.
Interesting to see Mongo's (in)famous marketing in action again, though![1] I'll stick to equally-or-more popular products that succeeded on technical merits instead of marketing (e.g. Postgres).
1. https://www.nemil.com/mongo/3.html
You're worrying about problems that you don't yet have and at scales you may never reach. I'd say stick with what you know and see if you can get initial traction with your users.
If your data is highly relational then yes it's not a great fit but it's still passable if you're happy to give up transactions and the ability to force data consistency etc.
Where I work we have a production API serving thousands of websites that uses Mongo, don't sweat the details too much early on.
Agreed that it could go no where, but, I'm hoping that one project, at some point in my life does well—so learning a technology that doesn't suffer from scaling issues would hopefully be a road I eventually have to take.
Appreciate the feedback!
one thing i should express, many of the negative sentiments of mongodb are related to outdated facts or commentary. review some of the new features to ensure you're getting all the benefits mongodb has produced since the days of 2012.
There are many, many companies using MongoDB very successfully. I have found that "issues" being reported with MongoDB are based on old versions and information, or an improperly configured and tuned environment. I recently wrote a blog post covering some topics around this. I'd encourage you to read it: https://www.kenwalger.com/blog/nosql/mongodb/mongodb-perform...
I think you'll find that MongoDB will meet, and exceed, your expectations for performance.
I recommend you learn at least one alternative database paradigm (relational/SQL databases are probably a good choice) so that you can make informed decisions about the trade-offs between data stores each time you start a new project.