Gebruik de positionele operator($
) om alleen het eerste overeenkomende subdocument te projecteren.
db.t.find({"array":{"type":"dog", "name":"Steve"}},{"array.$":1})
Met behulp van meteor
, zou u zich aan aggregatie moeten houden, aangezien de positional
operator werkt niet:
db.t.aggregate([
{$match:{"array.type":"dog","array.name":"Steve"}},
{$unwind:"$array"},
{$match:{"array.type":"dog","array.name":"Steve"}}
])