Definición
Compatibilidad
Puedes usar $arrayElemAt para implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
$arrayElemAt tiene la siguiente sintaxis:
{ $arrayElemAt: [ <array>, <idx> ] }
La <array> expresión puede ser cualquier expresión válida que se resuelva en una matriz.
La <idx> expresión puede ser cualquier expresión válida que se resuelva en un entero.
Para obtener más información sobre las expresiones, consulta Expresiones.
Comportamiento
Si la
<idx>expresión se resuelve en cero o un entero positivo, devuelve el elemento en$arrayElemAtlaidxposición, contando desde el inicio de la matriz.Si la
<idx>expresión se resuelve en un entero negativo, devuelve el elemento en$arrayElemAtlaidxposición, contando desde el final de la matriz.Si
idxexcede los límites de la matriz, no devuelve un$arrayElemAtresultado.Si la
<array>expresión se resuelve en una matriz indefinida,$arrayElemAtnulldevuelve.
Ejemplo | Resultados |
|---|---|
|
|
|
|
| |
|
|
Ejemplo
Una colección llamada users contiene los siguientes documentos:
db.users.insertMany( [ { _id: 1, name: "dave123", favorites: [ "chocolate", "cake", "butter", "apples" ] }, { _id: 2, name: "li", favorites: [ "apples", "pudding", "pie" ] }, { _id: 3, name: "ahn", favorites: [ "pears", "pecans", "chocolate", "cherries" ] }, { _id: 4, name: "ty", favorites: [ "ice cream" ] } ] )
El siguiente ejemplo devuelve el primer y el último elemento de la matriz favorites:
db.users.aggregate([ { $project: { name: 1, first: { $arrayElemAt: [ "$favorites", 0 ] }, last: { $arrayElemAt: [ "$favorites", -1 ] } } } ])
La operación devuelve los siguientes resultados:
[ { _id: 1, name: "dave123", first: "chocolate", "last" : "apples" }, { _id: 2, name: "li", first: "apples", "last" : "pie" }, { _id: 3, name: "ahn", first: "pears", "last" : "cherries" }, { _id: 4, name: "ty", first: "ice cream", "last" : "ice cream" } ]