I am having trouble grasping how to filter embedded documents in MongoDB, and am starting to think I should be using a relational association, but that feels wrong in the document-store context.
Sticking with a typical blog/comment system, I have a collection of blogs
, and each blog
has many comments
. The comments are stored as embedded documents inside the blog document.
It is very simple to filter my blogs
collection, but in order to filter my comments
embedded in each blog
, I am having to load them all into memory (retrieve all into a Ruby array), and loop through each comment, returning ones that match a specific criteria.
My efforts to filter embedded documents using dot notation is failing, and bringing back all sub documents.
Is there a better way of getting MongoDB to filter these for me, or should I resign myself to relational associations? (Pulling back all embedded documents and manually filtering is going to be too intensive in the long run)