$addToSet (Adicionar ao Conjunto)

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

$addToSet (Adicionar ao Conjunto)

$addToSet adiciona um valor a um array apenas se ele já não estiver presente, mantendo o array livre de duplicatas. `{ $addToSet: { tags: 'mongodb' } }`. Para adicionar vários valores de uma vez, combine com $each. A detecção de duplicatas compara valores inteiros (documentos aninhados campo a campo). Ótimo para tags e listas de seguidores.

CategoriaAtualização de Array
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $addToSet: { <campo de array>: <valor> } }

⚙️ Parâmetros

campo de arrayO campo de matriz ao qual adicionar.
valorO valor a adicionar; ignorado se já estiver presente.

Retorno:O resultado da atualização

▶ Exemplo

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

// $addToSet: adiciona tag (pulada se já presente)
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: 'mongodb' } }
)

// Vários valores exigem $each
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: { $each: ['database', 'nosql'] } } }
)

Saída:

// mongodb existente não é duplicado; database e nosql são acrescentados

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $addToSet e $push?
A$addToSet deduplica; $push acrescenta e permite duplicatas.
QComo adiciono vários valores de uma vez?
AUse $each: { $addToSet: { tags: { $each: ['a', 'b'] } } }.
Q$addToSet pode adicionar documentos aninhados?
ASim; a deduplicação compara o documento inteiro.
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%