MongoDB is a very interesting experiment, business-wise. It is answering the question "What if we invest in marketing first, and product second". It's not the first case study of its kind either, we had Oracle for "What if we invest in sales first, and product second".
The results so far have been disheartening.
I will beat the drum once more: I give you 99% odds that your data is relational and you shouldn't be using a non-relational database for it. The only use case I could find was when unknown data is coming in and you just want to store and figure out what to do with it later.
You don't get to throw away database standards, ACID-compliance and general sanity in the name of reads and inserts... Yet $6B say that you can.
If a carpenter uses a screw-driver to enter nails, ship products, solve business problems and make money, is he wrong?
Lots of people are suffering for their decision to go with Mongo based on hype generated by the marketing. If you have non-relational data, then yes, MongoDB is hard to match (I'm not super familiar with the NoSQL space). But very few people do.
It's simply that there are better ways to do these things.
None of this should be taken as a stand against NoSQL in general however, Redis for example is great. The problem with MongoDB is the lie that it is a general purpose database.
I consider MongoDB to be a special case of a relational database. One that can be easily expressed as a hashmap (i.e. a single relation of key -> value). Because of this it is easier to set up as such (replica sets, sharding, blah blah).
I'm therefore curious, what kind of data is non-relational?
It barely is. 1-minute transaction limits make them useless for a lot of workloads. I have scripts which need up to 10 minutes to complete and heard of scripts which take days and require ACIDity. Time limits on transactions shouldn’t be there.
But suppose that it has real transactions. We’re talking about a database which could not guarantee that when it says that something has been saved, that it was actually saved until the 4th major release. Marketing over product.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
MongoDB is a very interesting experiment, business-wise. It is answering the question "What if we invest in marketing first, and product second". It's not the first case study of its kind either, we had Oracle for "What if we invest in sales first, and product second".
The results so far have been disheartening.
I will beat the drum once more: I give you 99% odds that your data is relational and you shouldn't be using a non-relational database for it. The only use case I could find was when unknown data is coming in and you just want to store and figure out what to do with it later.
You don't get to throw away database standards, ACID-compliance and general sanity in the name of reads and inserts... Yet $6B say that you can.
You say "should" and "you don't get to."
Yet lots of people are using MongoDB to ship products, solve business problems and make money.
Are they wrong?
If a carpenter uses a screw-driver to enter nails, ship products, solve business problems and make money, is he wrong?
Lots of people are suffering for their decision to go with Mongo based on hype generated by the marketing. If you have non-relational data, then yes, MongoDB is hard to match (I'm not super familiar with the NoSQL space). But very few people do.
It's simply that there are better ways to do these things.
None of this should be taken as a stand against NoSQL in general however, Redis for example is great. The problem with MongoDB is the lie that it is a general purpose database.
I consider MongoDB to be a special case of a relational database. One that can be easily expressed as a hashmap (i.e. a single relation of key -> value). Because of this it is easier to set up as such (replica sets, sharding, blah blah).
I'm therefore curious, what kind of data is non-relational?
Me, an intellectual:
I thought MongoDB is ACID compliant since 4.0?
It barely is. 1-minute transaction limits make them useless for a lot of workloads. I have scripts which need up to 10 minutes to complete and heard of scripts which take days and require ACIDity. Time limits on transactions shouldn’t be there.
But suppose that it has real transactions. We’re talking about a database which could not guarantee that when it says that something has been saved, that it was actually saved until the 4th major release. Marketing over product.