I noticed that the NoSQL solutions provided by giants such as Google NoSQL, Firestore, and DynamoDB don't have join queries (I'm not including MongoDB and RethinkDB in this).
I like the idea of using those for the simplicity and cost benefits though.
I love JSON style document databases and don't want to go back to the dark days of VARCHAR etc. I'm wondering therefore how viable building 99% of databases for the web are with them.
Take this scenario:
User can be a member of many projects, they can see their projects on a Project List page, and drill down to a Project Details page.
Relationally this would be simple:
user: { ..., projects: [projectId1, ...] }
project: { ..., users: [userId1, ...] }
You could then make a join to show some basic details on Project List etc.
But what about with non-relational NoSQL? How would we denormalise this?
Would you simply have:
user: { no project IDs },
project: { users: [userId1, ...] }
And then for either the Project List page or Project Details page you simply run a filter on every project and return the ones the user is a member of? Is this what NoSQL thrives at in terms of efficiency? I am not dealing with huge datasets here I expect projects to be <10k and not be large docs. Thanks.