Meteor中用户配置文件的更新元素

时间:2015-11-07 11:18:09

标签: javascript mongodb meteor meteor-accounts

我正在尝试使用firstName更新user.profile中创建的onCreateUser字段:

Accounts.onCreateUser(function(options, user) {
    user.profile = options.profile || {};
    user.profile.firstName = options.firstName;
    return user;
});

我也使用allow:

Meteor.users.allow({
    update: function(userId, doc, fields, modifier) {
        if (fields === "profile.firstName") {
            return true;
        }
    }
});

当我使用时:

Meteor.users.update({
    _id: Meteor.userId()
}, {
    $set: {
        profile: "George"
    }
});

它有效,但它不是我需要的。

我需要更新firstName

Meteor.users.update({
    _id: Meteor.userId()
}, {
    $set: {
        profile.firstName: "George"
    }
});

但是我收到了这个错误:

  

SyntaxError:missing:属性id

之后

我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您使用dot notation,则需要将整个虚线字段名称括在引号中。

在你的情况下:

Meteor.users.update({
    _id: Meteor.userId()
}, {
    $set: {
        "profile.firstName": "George"
    }
});

详细了解updating an embedded field