我目前正在构建我的第一个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客户端?
答案 0 :(得分:0)
那是因为您没有为upsert
定义单独的允许规则,仅用于插入,更新和删除(http://docs.meteor.com/#allow)。此外,“upsert与使用upsert选项设置为true(..)”调用update相同“(http://docs.meteor.com/#upsert)。
所以最重要的是:只需确保您的更新规则是正确的。