私は流星でアプリを書いていて、mongodb に慣れようとしています。次のスキーマでユーザーを更新しようとしています。
user = {
... SOME DATA....,
"profile": {
"firstName": "HELLO",
"lastName": "MIKE",
"phoneNumber": "0432456524",
"userRole": "General Practitioner",
"practice": {
"name": "Hello koramaiku",
"address": "222 Hello St Helloville",
"state": "NSW",
"postcode": "2000"
},
"AHPRANumber": "4586546545",
"providerNumber": "4565498751321"
}, ..... SOME MORE DATA
}
ユーザーのプロファイル オブジェクトの詳細を変更する設定フォームがあります。既存の値の一部を置き換えることなく、プロファイル オブジェクトの firstName、lastName、および phoneNumber を編集できるフォームがあります。
var userData = {
firstName: 'Hello',
lastName: 'Kora',
phoneNumber: '0422222222'
};
Meteor.users.update({'_id': Meteor.userId() }, {$set : userData}, function(error){
........
});
ただし、更新を実行すると、必要な値だけを置き換えるのではなく、プロファイル オブジェクト全体が新しい値で上書きされます。私が理解していることから、 $set 修飾子は、特定のフィールドのデータが既に存在する場合はそれらを置き換え、存在しない場合はセットに追加します。
置き換えたくないデータを上書きせずに、上記のようにドキュメントのデータを更新する方法はありますか?
ありがとう。