3 ms·
> And many of us aren't working with relational data. I think this is probably where the disconnect is. If your data has relations to other data, which is the
by brandur 9y ago
> And many of us aren't working with relational data.
I think this is probably where the disconnect is. If your data has relations to other data, which is the vast majority of things that you're going to be building in the real world, it's relational.
Mongo came out of the gates billing itself as a general purpose backend solution for modern "webscale" apps. It was upfront about being document-oriented, but not upfront about the ramifications of such a design, leaving a lot of people including the author of this article to find out the hard way as to the sort of architectural debt that you end up with as you shoehorn a relational schema into a non-relational store.
When you're showing a simple demo with three relations like article <-> comment <-> user it's easy to be fooled that a document oriented design is relatively sane, but once you build something more complex the shortcomings become very apparent _very_ quickly.
> That is exactly what it was designed to be and one of the big reasons people are using it.
A lot of people are using it because of early hype, aggressive marketing (the "MEAN stack"), and misleading benchmarks when it came out (`writeConcern`, flush intervals, and no journaling) combined with the fact that moving databases is very hard once you've got a big operation going.
I don't think there's been a reason to use Mongo for years now, but that goes doubly so these days with the advent of modern scalable databases that give you a lot of important features that Mongo doesn't (Aurora, Citus, Spanner, ...).