$nin (Não Está Em Array)

Última atualização: 2026-10-09

$nin (Não Está Em Array)

$nin seleciona documentos onde o valor do campo não é igual a nenhum valor do array fornecido — a negação de $in. `{ age: { $nin: [18, 21] } }` corresponde a usuários que não têm 18 nem 21 anos. Assim como $ne, não corresponde a documentos com o campo ausente; em campos de array, corresponde quando qualquer elemento não está no array.

CategoriaComparação
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ <campo>: { $nin: [ <valor1>, <valor2>, ... ] } }

⚙️ Parâmetros

campoO campo do documento a corresponder.
array de valoresA lista de valores a excluir; o campo não deve ser igual a nenhum deles.

Retorno:Cursor dos documentos correspondentes

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $nin: exclui usuários com 18 e 21 anos
db.users.find({ age: { $nin: [18, 21] } })

// Documentos com o campo ausente não são retornados
db.users.find({ age: { $nin: [18] } })

Saída:

// Retorna usuários cujo age não é nem 18 nem 21; documentos com campo ausente são excluídos

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $nin e $ne?
A$ne exclui um valor, $nin exclui uma lista; ambos significam diferente-de, $nin é a forma em lote.
Q$nin retorna documentos onde o campo não existe?
ANão. Assim como $ne, $nin só corresponde a documentos onde o campo existe e o valor não está no array.
QComo $nin corresponde a campos de array?
AEle corresponde quando qualquer elemento individual não está no array fornecido, não o array inteiro de uma vez.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%