Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$arrayElemAt (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Comportamento
  • Exemplo
  • Veja também
$arrayElemAt

Retorna o elemento no índice de array especificado.

Você pode utilizar o $arrayElemAt para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

$arrayElemAt tem a seguinte sintaxe:

{ $arrayElemAt: [ <array>, <idx> ] }

A expressão <array> pode ser qualquer expressão válida que resolva para uma array.

A expressão <idx> pode ser qualquer expressão válida que resolva para um número inteiro.

Para mais informações sobre expressões, consulte Expressões.

  • Se a expressão <idx> for resolvida para zero ou um número inteiro positivo, $arrayElemAt retornará o elemento na posição idx , contando desde o início da array.

  • Se a expressão <idx> for resolvida para um inteiro negativo, $arrayElemAt retornará o elemento na posição idx, contando a partir do final da array.

  • Se idx exceder os limites da array, $arrayElemAt não retornará um resultado.

  • Se a expressão <array> for resolvida para uma array indefinida, $arrayElemAt retornará null.

Exemplo
Resultados
{ $arrayElemAt: [ [ 1, 2, 3 ], 0 ] }
1
{ $arrayElemAt: [ [ 1, 2, 3 ], -2 ] }
2
{ $arrayElemAt: [ [ 1, 2, 3 ], 15 ] }
{ $arrayElemAt: [ "$undefinedField", 0 ] }
null

Uma coleção chamada users contém os seguintes 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" ] }

O exemplo a seguir retorna o primeiro e o último elemento na array favorites:

db.users.aggregate([
{
$project:
{
name: 1,
first: { $arrayElemAt: [ "$favorites", 0 ] },
last: { $arrayElemAt: [ "$favorites", -1 ] }
}
}
])

A operação retorna os seguintes 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" }
← $anyElementTrue (agregação)