$all (Contém Todos)
Última atualização: 2026-10-09
$all (Contém Todos)
$all corresponde a documentos cujo campo de array contém todos os elementos do array fornecido. `{ tags: { $all: ['mongodb', 'database'] } }` exige que tags inclua ambos os valores, em qualquer ordem. Diferente de $in (qualquer correspondência), $all exige todos os valores — ideal para filtragem de tags obrigatórias.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $all: [ <valor1>, <valor2>, ... ] } }
⚙️ Parâmetros
| campo | O campo de matriz a corresponder. |
|---|---|
| array de valores | A lista de valores que devem estar todos presentes. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $all: tags inclui tanto mongodb quanto database
db.articles.find({ tags: { $all: ['mongodb', 'database'] } })
// $in para comparação: corresponde a qualquer tag
db.articles.find({ tags: { $in: ['mongodb', 'database'] } })
Saída:
// A primeira consulta exige ambas as tags; a segunda corresponde a qualquer uma
📌 Notas
- A ordem não importa: ['mongodb', 'database'] é igual ao inverso
- $all é deve-conter-todos, $in é qualquer-correspondência
- $all: [] corresponde a todos os documentos, incluindo os que não têm o campo
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $all e $in?
A$in corresponde se qualquer valor aparecer; $all exige que todos os valores listados estejam presentes.
Q$all funciona em campos não-array?
AEm campos não-array, $all se comporta como $eq (comparação de valor único).
QO que acontece com um array $all vazio?
A$all: [] corresponde a todos os documentos, incluindo os que não têm o campo.