我是Meteor的新手,我无法弄清楚为什么会这样?我有一个名为gameCol
的集合,我正在尝试更新。集合中只有一个文档符合标准。当我像这样更新时:
gameCol.update({started:true}, {$set:{started:false}});
流星抛出
Meteor.Error.prototype = new Error; at line 144 livedata_common.js
如果我这样更新:
var status = gameCol.findOne({started:true});
gameCol.update({_id:status._id}, {$set:{started:false}});
一切都按预期工作。
这对我来说似乎有点奇怪,我也找不到任何可以解释它的东西。
答案 0 :(得分:2)
不受信任的代码[=客户端上的js]只能一次修改单个文档,由_id指定。只有在检查了任何适用的允许和拒绝规则后才允许修改。
这是出于安全原因(explainations here)。因此,您需要使用有效的第二段代码。