在Meteor 0.5.8中引入了以下更改:
在不受信任的代码中调用更新和删除集合函数可能不再使用任意选择器。从客户端调用这些函数时(除了在方法存根中),您必须指定单个文档 ID。
因此,现在如果您想从客户端控制台向数据库推送任意更新,您必须执行以下操作:
People.update({_id:People.findOne({name:'Bob'})['_id']}, {$set:{lastName:'Johns'}});
代替:
People.update({name:'Bob'}, {$set:{lastName:'Johns'}});
我认为这个安全问题是通过设置 Meteor.Collection.allow 和 .deny 函数以及自动发布和不安全包来控制的。我喜欢能够从 Chrome JavaScript 控制台与数据库交互。
Meteor 0.5.8 变化的动机是什么?