$addToSet (Acumulador de Array Único)

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

$addToSet (Acumulador de Array Único)

$addToSet é um acumulador que adiciona o resultado da expressão de cada documento a um array durante $group, deduplicando automaticamente — valores repetidos aparecem uma única vez. Como $push, mas garante unicidade. Serve para tags, listas de clientes e outras necessidades de deduplicação. A ordem dos elementos não é garantida.

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

📝 Sintaxe

{ $group: { _id: <key>, tags: { $addToSet: "$field" } } }

Retorno:Matriz sem duplicatas de resultados de expressão

▶ Exemplo

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

// $addToSet: itens distintos por cliente
db.orders.aggregate([
  { $group: { _id: '$cust_id', items: { $addToSet: '$item' } } }
])

Saída:

{ "_id": "A123", "items": ["Pen", "Book"] }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $addToSet e $push?
A$push mantém duplicatas; $addToSet as remove.
QA ordem é garantida?
ANão, a ordem dos elementos não é garantida; ordene o resultado você mesmo.
QEle consegue deduplicar elementos de array?
ANão diretamente — ele compara valores de array inteiros; use $unwind antes para achatá-los.
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%