distinct() (Valores Distintos)

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

distinct() (Valores Distintos)

distinct() retorna todos os valores únicos de um determinado campo na coleção, ex.: `db.users.distinct('address.city')`. Retorna um array de valores sem duplicatas, não documentos completos — útil para enumerar categorias ou valores disponíveis. Observe que distinct em campos grandes sem índice pode ser lento, e os resultados são limitados pelo limite BSON de 16MB.

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

📝 Sintaxe

db.<collection>.distinct(<field>, <filter>)

⚙️ Parâmetros

campoNome do campo a deduplicar; caminhos com ponto como 'address.city' funcionam.
filtroOpcional. Filtra documentos antes de coletar valores.

Retorno:Matriz de valores distintos; vazia quando nada corresponde.

▶ Exemplo

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

// distinct: lista todas as cidades de usuários adultos
const cities = db.users.distinct(
  'address.city',
  { age: { $gt: 18 } }
)
cities

Saída:

[ 'Beijing', 'Shanghai', 'Guangzhou' ]

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo distinct difere da deduplicação com $group na agregação?
Adistinct() retorna um array simples de valores únicos; $group também pode contar, somar e agregar de formas mais ricas.
QO distinct funciona em campos aninhados?
ASim — use um caminho com pontos, ex.: db.users.distinct('address.city').
QO distinct falha quando os resultados são enormes?
ASe o resultado exceder o limite BSON de 16MB, ele gera erro; para resultados muito grandes, use um pipeline $group.
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%