3 ms·
Can you point me to an article that explains why you would want JOINs in a NoSQL database to begin with? I thought the entire point was to denormalize your data
by omni 13y ago
Can you point me to an article that explains why you would want JOINs in a NoSQL database to begin with? I thought the entire point was to denormalize your data. I keep seeing this point brought up, but it reads to me like a misguided complaint stemming from misunderstanding how to apply the tech.
- rpedela 13y agoUsing hierarchical data structures takes care of the most common use case of JOIN (i.e. "SELECT * FROM a, b, c"). This is a win for MongoDB. However there are times when you want to JOIN multiple hierarchical data structures [1]. Or use a different type of JOIN. [1] http://tebros.com/2011/07/using-mongodb-mapreduce-to-join-2-collections/ http://tebros.com/2011/07/using-mongodb-mapreduce-to-join-2-...
- mason55 13y agoSo JOIN in your application. Or use a different DB. MongoDB isn't correct for every use case and they would never claim it is.
- ArbitraryLimits 13y agoAm I just too old for HN now? I can understand calling something that holds your data and makes it so you don't have to do JOINs a database. I can understand calling something that holds your data and does JOINs for you a database. I'm having trouble calling something that holds my data and makes it so I have to "JOIN in my application" anything but a file system.
- untog 13y agoI don't know, what is the definition of a database? I'd be surprised if it mandated joins.
- gaius 13y agoActually, if you speak to them, they do claim that. Then they backtrack when you call them on it, but I've heard guys from 10gen as they were known then claim their product was a drop-in replacement for Oracle.
- omni 13y agoHearsay and strawman arguments don't make for an intellectual discussion.
- troyk 13y agoThe rethinkdb guys think it's important and have joins in their nosql product. Everytime I try nosql first thing I miss is the ability to query as the need arises without a refactor.
- danudey 13y agoI've always just abstracted the DB away with objects and lazy-load any 'subqueries' that I might want to have/use/get (or autoload them if necessary).
- wmf 13y agoThe entire point is to go fast; denormalization is a tool, not an end in itself. If, hypothetically (ahem), a database could scale and support joins, why not?
- MichaelGG 13y agoUsing partitioning like VoltDB allows you to keep joins. I think Google's Spanner/F1 partitioning/relation scheme also allows joins.