re: MongoDB has no use case VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Still, no ACID, no integrity constraints, no efficient backup/upgrade solution. I'd see MongoDB fit for data cache, but I couldn't see it in any o...
 

ACID is out, and there were keys and indexes from the start. What is next, joins? 😂

Saying MongoDB finally has XYZ is like saying PHP finally has namespaces and JavaScript finally has dependency injection. It helps, sure, but only if you're stuck in that ecosystem.

The problem I see here is that a lot of people over-abuse MongoDB like it's a general-purpose DBMS, and they put themselves under a lot of technical debt for this choice: hype-driven choice and not technical-driven.

In most use cases, the core data you exploit is relational and it makes sense to use a RDBMS, but an awful lot of users decide that having a constrained and validated model handled by the RDBMS is too constraining for them, or that they just prefer to use "the most awesome solution overall" and blindly choose their tools based on pure hype/laziness and not technical need.

I dunno, I feel it's more common for people to over-abuse RDBMSes like they're general purpose databases ;)

RDBMSes have drawbacks, MongoDB and other databases have their drawbacks.

If you assume RDBMSes are the one right "general purpose database" choice, then you're wrong. MongoDB and others like it can fill that role perfectly fine, for many cases.

Never choose your tools blindly, and this includes the choice of RDBMS vs. NoSQL. The "benefits" you get from RDBMS are going to make your life a living hell if you ever need to scale out past one node (except maybe in a Galera cluster type setup), or to a sharded environment.

In a sharded environment pretty much all benefits of RDBMSes are gone, and the remaining features just add more pains - now you have X databases storing data for the same thing, and their strict structures, restrictions, etc. can be out of sync with each other unless you want to take your whole app down during the schema change. Whoopee.

Oh also as a random point that came to my mind: please everyone stop implementing searches on SQL databases. They're awful at it.

I agree with that.

The thing is, most data models are relational.

Based on that same argument (or a very similar one) you could probably just say most people should be using a graph database, instead of an RDBMS.

Just because you know RDBMSes already, or because they're widely used, doesn't mean they're the right tool for the job.

[...] unless you want to take your whole app down during the schema change. Whoopee.

Now that's a VERY good point. I can imagine how much pain it will be to try to wrestle with an RDBMS when doing schema changes. Hmmm ...

code of conduct - report abuse