$isArray (Verificar se o Valor é Array)
Última atualização: 2026-10-09
$isArray (Verificar se o Valor é Array)
$isArray retorna um booleano indicando se uma expressão resulta em um array. É frequentemente usado dentro de $cond para ramificação por tipo: quando um campo pode ser um escalar ou um array, verifique primeiro e depois escolha um caminho de processamento. Também protege operadores como $size ou $map, que aceitam apenas arrays, prevenindo erros. É a verificação de tipo das expressões de agregação e pode ser combinado com $type para verificações precisas de tipo BSON. Um campo ausente resulta em false em vez de erro.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $isArray: <expressão> }
⚙️ Parâmetros
| expressão | Qualquer expressão cujo resultado é verificado quanto ao tipo matriz. |
|---|
Retorno:Um booleano: true quando o resultado é uma matriz, caso contrário false
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $isArray: tags podem ser string ou array, conte ambas
db.products.aggregate([
{ $project: {
tagCount: { $cond: { if: { $isArray: '$tags' }, then: { $size: '$tags' }, else: 1 } }
} }
])
Saída:
{ '_id': 1, 'tagCount': 3 }
{ '_id': 2, 'tagCount': 1 }
📌 Notas
- Um campo ausente resulta em false, não em erro
- Arrays aninhados (arrays dentro de arrays) contam como arrays, então $isArray retorna true
- Combine com $cond/$switch para despacho por tipo e para evitar chamar $size em não arrays
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que $isArray retorna quando o campo está ausente?
ARetorna false sem gerar erro, tornando-o seguro para guardas.
QO $isArray distingue string de array?
ASim — strings retornam false; apenas o tipo BSON Array retorna true.
QComo usá-lo com $cond?
AColoque $isArray na posição if de $cond e escreva dois ramos em then/else.