我正在meteor中编写应用程序并试图熟悉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
}
Run Code Online (Sandbox Code Playgroud)
我有一个设置表单,它将修改用户的配置文件对象中的一些细节.我有一个表单,允许您编辑配置文件对象中的firstName,lastName和phoneNumber,而不替换一些现有的值.
var userData = {
firstName: 'Hello',
lastName: 'Kora',
phoneNumber: '0422222222'
};
Meteor.users.update({'_id': Meteor.userId() }, {$set : userData}, function(error){
........
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行更新,它将使用新值覆盖整个配置文件对象,而不是仅替换我需要的值.据我所知,$ set修饰符将替换某个字段中的数据(如果它们已经存在),如果它们不存在则添加到set.
有没有办法像上面那样更新文档的数据,而不会覆盖我不想替换的数据?
谢谢.
使用 .
userData = {
"profile.firstName": 'Hello',
"profile.lastName": 'Kora',
"profile.phoneNumber": '0422222222'
};
Run Code Online (Sandbox Code Playgroud)
这些将确保只更改那些特定的键.
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |