Mongoid / Mongodb and querying embedded documents

sewid picture sewid · Oct 17, 2010 · Viewed 19.2k times · Source

I have Author and Book models.

An Author has many embedded Books.

Can I query the embedded Books, or do I have to fetch Authors first to get Books?

Answer

Jesse Wolgamott picture Jesse Wolgamott · Oct 17, 2010

You can query embedded documents, just qualify the name. Now, this will return all Authors that have books that match your query.

If Author is defined as having many :books (and book is an embedded::document)

@authors_with_sewid = Author.where("books.name" => "sewid").all

You'd then need to iterate over the authors and extract the books.