MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Projection de tableau multidimensionnel MongoDB

Vous pouvez utiliser le framework d'agrégation :

db.test.aggregate([
    { $unwind: '$arr' },
    { $limit: 1 },
    { $project: { _id: 0, arr: 1 } },
    { $unwind: '$arr' },
    { $skip: 1 },
    { $limit: 1 }
])

Renvoie :

{ "arr": 22 }

Modifier : L'affiche originale a modifié ma solution pour l'adapter à ses besoins et a proposé ce qui suit :

db.test.aggregate([
    { $match: { name:"Olivia" } },
    { $project: { _id: 0,arr: 1 } },
    { $unwind: '$arr' },
    { $skip: 1 },
    { $limit:1 },
    { $unwind: "$arr" },
    { $skip: 2 },
    { $limit: 1 }
])

Cette requête se traduira par { arr: 77 } compte tenu des données étendues fournies par le PO. Notez que $skip et $limit sont nécessaires pour sélectionner les bons éléments dans la hiérarchie du tableau.