$indexOfArray (Encontrar Índice de Elemento no Array)

Última atualização: 2026-10-09

$indexOfArray (Encontrar Índice de Elemento no Array)

$indexOfArray retorna o índice da primeira ocorrência de um valor em um array, ou -1 quando ausente. Usos típicos incluem verificar se uma tag existe e localizar um elemento específico para lê-lo com $arrayElemAt. Argumentos opcionais restringem a busca a um intervalo de índices start/end. É a contraparte em array de $indexOfBytes/$indexOfCP, que operam em strings. A correspondência usa igualdade estrita, então objetos devem corresponder como um todo.

CategoriaArray
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $indexOfArray: [ <array>, <valor de busca>, <início>, <fim> ] }

⚙️ Parâmetros

arrayA matriz a pesquisar.
valor de buscaO valor a localizar.
índice inicialÍndice inicial opcional, inclusivo; o padrão é 0.
índice finalÍndice final opcional, exclusivo.

Retorno:O índice da primeira correspondência, ou -1 quando não encontrado

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $indexOfArray: localizar a tag 'urgent'
db.tasks.aggregate([
  { $project: {
      urgentPos: { $indexOfArray: ['$tags', 'urgent'] }
  } }
])

Saída:

{ '_id': 1, 'urgentPos': 2 }
{ '_id': 2, 'urgentPos': -1 }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que $indexOfArray retorna quando o elemento está ausente?
ARetorna -1; verifique com $ne para testar existência.
QPosso restringir o intervalo de busca?
ASim — o terceiro e o quarto argumentos são os índices de start (inclusivo) e end (exclusivo).
QComo buscar um elemento que é objeto?
APasse o objeto inteiro para igualdade estrita, ex.: { $indexOfArray: ['$arr', { a: 1 }] }.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%