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:
{ "_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" }