我正在用流星编写一个应用程序并试图熟悉 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
}
我有一个设置表单,它将修改用户配置文件对象中的一些细节。我有一个表单,它允许您编辑配置文件对象中的名字、姓氏和电话号码,而无需替换某些现有值。
var userData = {
firstName: 'Hello',
lastName: 'Kora',
phoneNumber: '0422222222'
};
Meteor.users.update({'_id': Meteor.userId() }, {$set : userData}, function(error){
........
});
但是,如果我执行更新,它会用新值覆盖整个配置文件对象,而不是只替换我需要的值。据我所知, $set 修饰符将替换某个字段中的数据(如果它们已经存在),如果它们不存在则添加到 set 中。
有没有办法像上面那样更新文档的数据,而不会覆盖我不想替换的数据?
谢谢。