Możesz zakwalifikować swoją update
z obiektem zapytania, który uniemożliwia aktualizację, jeśli name
jest już obecny w profile_set
. W powłoce:
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
Więc to wykona tylko $push
dla dokumentu z pasującym _id
i gdzie nie ma profile_set
element, w którym name
to 'nick'
.