Можете да квалифицирате вашата update
с обект на заявка, който предотвратява актуализацията, ако name
вече присъства в profile_set
. В обвивката:
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
Така че това ще изпълни само $push
за документ със съвпадащ _id
и където няма profile_set
елемент, където name
е 'nick'
.