$exists (Existência de Campo)
Última atualização: 2026-10-09
$exists (Existência de Campo)
$exists filtra documentos com base na presença de um campo. `{ $exists: true }` corresponde a documentos onde o campo existe e não é null; `{ $exists: false }` corresponde a documentos onde ele está ausente. É a principal ferramenta para problemas de campo ausente e combina com $ne/$gt, que de outra forma ignoram campos ausentes.
| Categoria | Elemento e Avaliação |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $exists: <booleano> } }
⚙️ Parâmetros
| campo | O campo do documento cuja existência será testada. |
|---|---|
| boolean | true corresponde a campos que existem, false corresponde a campos ausentes. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $exists: usuários que têm um email
// O campo deve existir e não ser null
db.users.find({ email: { $exists: true } })
// Usuários sem o campo email
db.users.find({ email: { $exists: false } })
Saída:
// O primeiro retorna usuários com o campo email; o segundo retorna usuários sem ele
📌 Notas
- $exists: true não corresponde a um campo cujo valor é null
- Combine com $ne/$gt/$nin para compensar o comportamento deles com campos ausentes
- Use caminhos pontilhados para campos aninhados: { 'address.city': { $exists: true } }
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$exists: true corresponde a valores null?
ANão. Um campo presente com valor null falha em $exists: true; use $type: 10 ou $eq: null nesse caso.
QComo $exists e $ne trabalham juntos?
A{ $ne: valor, $exists: true } significa que o campo existe e é diferente — evitando que $ne pule campos ausentes.
QComo verifico se um campo de array existe?
AMesmo padrão: { $exists: true }; um array vazio ainda conta como existente.