How do I query referenced objects in MongoDB?
You can't. See http://www.mongodb.org/display/DOCS/Database+References
You have to do it in the client.
You can now do it in Mongo 3.2 using $lookup
$lookup
takes four arguments
from
: Specifies the collection in the same database to perform the join with. The from collection cannot be sharded.
localField
: Specifies the field from the documents input to the $lookup stage. $lookup performs an equality match on the localField to the foreignField from the documents of the from collection.
foreignField
: Specifies the field from the documents in the from collection.
as
: Specifies the name of the new array field to add to the input documents. The new array field contains the matching documents from the from collection.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)