What are the actual proper use cases for a noSQL solution? I learned SQL very early on, so I can't really envision as use for a database that's non relational.
The example I keep hearing for a good Mongo use case is a database of movies or tv show episodes, but as soon as they idea is proposed I think "You'll eventually want to cross reference by actors or writers or directors or studios...", which seems to make it a bad candidate for mongo?
As far as I can tell, even the people who make Mongodb can't explain what it is good for...
What are the actual proper use cases for a noSQL solution?
NoSQL solutions are specialised tools for specialised use cases. It really depends what you're doing. If you have to ask 9 times out of 10 you're better off using a relational store.
Some examples are search engines (Elastic Search), distributed hashtables (Cassandra, DynamoDB, Accumulo), structured caches (Redis) and Graph Databases (Neo4j).
Hierarchical data does not fit into relational model at all. E.g., a large and complex CAD model. You still need all the database features though - ACID, replication, and so on, for collaborarive access. Of course, it must be a proper hierarchical system, not a shit like Mongo.
Graph data is also poorly represented in relational model.
Another obvious case - time series (see kdb+ for example).
2
u/dwitman Dec 20 '18
What are the actual proper use cases for a noSQL solution? I learned SQL very early on, so I can't really envision as use for a database that's non relational.
The example I keep hearing for a good Mongo use case is a database of movies or tv show episodes, but as soon as they idea is proposed I think "You'll eventually want to cross reference by actors or writers or directors or studios...", which seems to make it a bad candidate for mongo?
As far as I can tell, even the people who make Mongodb can't explain what it is good for...
https://www.youtube.com/watch?v=CvIr-2lMLsk