$size (Obter Comprimento do Array)
Última atualização: 2026-10-09
$size (Obter Comprimento do Array)
$size retorna o número de elementos em um array como um inteiro não negativo. É o operador de metadados de array mais comum, usado para contar itens de pedidos, detectar arrays vazios ou filtrar documentos pelo comprimento do array dentro de $match via $expr. O argumento deve ser um array; passar uma string ou número gera erro, e o comprimento de string deve usar $strLenCP. $size não pode ser usado na sintaxe comum de consulta dentro de $match — deve passar por $expr.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $size: <array> }
⚙️ Parâmetros
| array | A expressão de matriz cujo comprimento é calculado. |
|---|
Retorno:A contagem de elementos como inteiro não negativo; lança erro quando o argumento não é uma matriz
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $size: contar itens por pedido
db.orders.aggregate([
{ $project: {
itemCount: { $size: '$items' }
} }
])
Saída:
{ '_id': 1, 'itemCount': 2 }
{ '_id': 2, 'itemCount': 5 }
📌 Notas
- O argumento deve ser um array ou gera erro; proteja campos ausentes com $ifNull para um array vazio
- Filtre o comprimento do array em $match com { $expr: { $gte: [{ $size: '$tags' }, 3] } }
- Meça o comprimento de string com $strLenCP, não $size
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $size pode ser usado em condições de consulta?
ANão na sintaxe comum de consulta — envolva-o em $expr, ex.: { $expr: { $gt: [{ $size: '$tags' }, 2] } }.
QO que acontece quando o campo está ausente?
AGera erro. Verifique com $ifNull ou $cond e trate ausente como 0.
QO $size consegue contar o comprimento de uma string?
ANão, strings não são arrays. Use $strLenCP para comprimento de string.