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'
です 。