流星客户端侧面不允许

时间:2014-06-20 14:37:48

标签: meteor

我目前正在构建我的第一个Meteor应用程序,并且在将文档插入集合客户端方面遇到了一些麻烦。

我希望更新文档,如果它已经在集合中,如果没有则插入一个。目前我的代码看起来像这样

UserData.upsert(
            {
                // Selector
                _id: Meteor.users.findOne({})._id
            },
            {
                // Modifier
                $set: {
                    user: Meteor.users.findOne({}),
                    currentquestions: currentQuestion
                }
            }


        );

然后

允许
 UserData.allow({
insert: function (userId) {
    // the user must be logged in, and the document must be owned by the user
    return (userId != null);
},
update: function (userId) {
    // the user must be logged in, and the document must be owned by the user
    return (userId != null);
},
upsert: function (userId) {
    // the user must be logged in, and the document must be owned by the user
    return (userId != null);
}

})

这适用于插入和更新。但是对于upsert,我得到以下错误

Error: allow: Invalid key: upsert

当然,我可以使用If / Else和Insert / Update,但是当.upsert应该做的时候,这似乎有点多余。 有谁知道如何允许.upsert客户端?

1 个答案:

答案 0 :(得分:0)

那是因为您没有为upsert定义单独的允许规则,仅用于插入,更新和删除(http://docs.meteor.com/#allow)。此外,“upsert与使用upsert选项设置为true(..)”调用update相同“(http://docs.meteor.com/#upsert)。

所以最重要的是:只需确保您的更新规则是正确的。