sql >> Base de Datos >  >> NoSQL >> MongoDB

Proyección de matriz multidimensional de MongoDB

Puede utilizar el marco de agregación:

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

Devoluciones:

{ "arr": 22 }

Editar: El cartel original ha modificado mi solución para adaptarla a sus necesidades y se le ocurrió lo siguiente:

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

Esta consulta dará como resultado { arr: 77 } dados los datos extendidos proporcionados por el OP. Tenga en cuenta que $skip y $limit son necesarios para seleccionar los elementos correctos en la jerarquía de la matriz.