MongoDB: Jak dodać do tablicy element bez duplikatu?
Opublikowano: 23.07.2022 - tagi: MongoDB Baza danych Zpytanie Tablica
Operator $push pozwala na dodanie do tablicy daną wartość:
Kolekcja:
{
_id: 1,
tags: ['foo', 'bar']
}
Zapytanie:
db.collection.updateOne({ _id: 1}, { $push: { tags: 'bar' } });
Do tablicy tags doda nowy element: bar:
{
_id: 1,
tags: ['foo', 'bar', 'bar']
}
Mamy dwa elementy o takiej samej wartości: bar. Co jeśli chcemy dodać nowy element, pod warunkiem że nie istnieje on już w tablicy?
Unikanie duplikatów
Okazuje się, że ten problem można łatwo rozwiązać za pomocą operatora: $addToSet:
db.collection.updateOne({ _id: 1}, { $addToSet: { tags: 'bar' } });
Ponieważ bar już istnieje tablicy tags to nie zostanie on dodany do tablicy.