Você está tentando especificamente fazer isso sem usar agregado?
db.test.aggregate([{$unwind:"$array"},
{$match:{"array.key":1}},
{$project:{"array.name":1, extra:1}}])
db.test.aggregate([{$unwind:"$array"},
{$match:{"array.key":1}},
{$project:{"array.name":1, extra:1}}])