Vous pouvez qualifier votre update
avec un objet requête qui empêche la mise à jour si le name
est déjà présent dans profile_set
. Dans le shell :
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
Cela n'effectuera donc que le $push
pour un document avec un _id
correspondant et où il n'y a pas de profile_set
élément où name
est 'nick'
.