Great article on some of the pros/cons of the various NoSQL data modeling techniques.
First let me start by saying I am a Developer Advocate at the NoSQL database company, Couchbase. Don’t want any secrecy here.
Another reader pointed out **aggregate** for MongoDB which does have a **$lookup** operator for joining. However, I agree with you when you said it can get very messy as you get more complex. I used it for a bit, but my queries got out of hand.
Not all NoSQL databases suffer from a query complexity problem like MongoDB. For example, Couchbase has a SQL syntax called N1QL that will allow you to execute SQL queries against the database. These queries include the JOIN keyword as well as so many others. The queries are managed at a database level so there isn’t a bunch of cruft code or multi-step querying that must happen in the application layer.
If you wanted to read more on it, you can do it here:
Open source, document-oriented NoSQL database for modern web, mobile, and IoT applications. Designed for ease of…developer.couchbase.com
Keep up the good work with your informative NoSQL articles :-)