Il existe un moyen plus efficace de le faire dans MongoDB 2.2+ maintenant que vous pouvez utiliser des index de tableau numériques (basés sur 0) dans les clés d'objet de requête.
// Find all docs that have at least two name array elements.
db.accommodations.find({'name.1': {$exists: true}})
Vous pouvez prendre en charge cette requête avec un index qui utilise une expression de filtre partielle (nécessite 3.2+) :
// index for at least two name array elements
db.accommodations.createIndex(
{'name.1': 1},
{partialFilterExpression: {'name.1': {$exists: true}}}
);