$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.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $indexOfArray: [ <array>, <valor de busca>, <início>, <fim> ] }
⚙️ Parâmetros
| array | A matriz a pesquisar. |
|---|---|
| valor de busca | O 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
- Apenas a primeira correspondência é retornada; duplicatas posteriores são ignoradas
- O intervalo é fechado à esquerda e aberto à direita: start é inclusivo, end é exclusivo
- Não encontrado resulta em -1, o que pode conduzir verificações de existência
🏷️ Tags Relacionados
💡 Casos Relacionados
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 }] }.