U moet de $ne
. gebruiken telefoniste.
var data = { 'kind': 'tortoise', 'hashtag': 'foo' };
Model.update(
{ 'articles.hashtag': { '$ne': 'foo' } },
{ '$addToSet': { 'articles': data } }
)
Hierdoor wordt het document alleen bijgewerkt als er geen subdocument in de array "article" staat met de waarde van hashtag gelijk aan "foo".
Zoals @BlakesSeven vermeldde in de opmerking
De $addToSet
wordt niet meer relevant zodra u test op de aanwezigheid van een van de waarden, dus dit kan net zo goed een $push
zijn voor de duidelijkheid van de code. Maar het principe is correct sinds $addToSet
werkt op het hele object en niet slechts op een deel ervan.
Model.update({
{ 'articles.hashtag': { '$ne': 'foo' } },
{ '$push': {'articles': data } }
)