Use o operador posicional(
$
) para projetar apenas o primeiro subdocumento correspondente. db.t.find({"array":{"type":"dog", "name":"Steve"}},{"array.$":1})
Usando
meteor
, você teria que manter a agregação, já que o positional
operador não funciona:db.t.aggregate([
{$match:{"array.type":"dog","array.name":"Steve"}},
{$unwind:"$array"},
{$match:{"array.type":"dog","array.name":"Steve"}}
])