$size (Tamanho de Array)
Última atualização: 2026-10-09
$size (Tamanho de Array)
$size corresponde a documentos onde um campo de array tem exatamente o tamanho fornecido. `{ tags: { $size: 3 } }` corresponde a documentos com exatamente 3 tags. Em consultas, $size aceita apenas um valor exato — você não pode escrever { $size: { $gt: 3 } }; para condições de intervalo use $expr com o $size de agregação.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $size: <tamanho> } }
⚙️ Parâmetros
| campo | O campo de matriz a corresponder. |
|---|---|
| comprimento | O número exato de elementos da matriz. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $size: artigos com exatamente 3 tags
db.articles.find({ tags: { $size: 3 } })
// Pelo menos 3 tags (exige $expr)
db.articles.find({ $expr: { $gte: [{ $size: '$tags' }, 3] } })
Saída:
// Retorna artigos com exatamente 3 tags; a segunda consulta retorna pelo menos 3
📌 Notas
- Consultas suportam apenas igualdade exata, não intervalos
- Para intervalos use $expr com { $size: '$tags' } e um operador de comparação
- $size não corresponde a documentos com o campo ausente
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$size pode consultar tamanho maior que um valor?
ANão diretamente. Use $expr: { $gt: [{ $size: '$tags' }, 3] }.
Q$size corresponde a documentos com o campo ausente?
ANão, o campo deve existir e ser um array.
Q$size: 0 pode corresponder a arrays vazios?
ASim, { tags: { $size: 0 } } corresponde a arrays vazios; campos ausentes ainda assim não correspondem.