Você pode qualificar sua
update com um objeto de consulta que impede a atualização se o name já está presente em profile_set . Na casca:db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
Portanto, isso só executará o
$push para um documento com um _id correspondente e onde não há um profile_set elemento onde name é 'nick' .