Exception Meteor抛出ThrowifSelectorsNotId异常

Exception Meteor抛出ThrowifSelectorsNotId异常,exception,meteor,meteorite,Exception,Meteor,Meteorite,运行某些代码时,Meteor抛出ThrowifSelectorsNotId异常。我有两个客户端运行相同的代码,当第二个客户端运行相同的代码时会引发异常 无法理解此异常的含义以及引发它的原因。希望有人能解释一下。对于客户端上的某些操作(我认为是0.57版)。执行更新操作时,例如 MyCollection.update({name:"John Doe"},{$set:{age:50}}); 您需要在客户端将其分为两部分。(仅在客户机上) 您需要首先通过\u id查找文档,然后更新该文档。选择器只能

运行某些代码时,Meteor抛出ThrowifSelectorsNotId异常。我有两个客户端运行相同的代码,当第二个客户端运行相同的代码时会引发异常


无法理解此异常的含义以及引发它的原因。希望有人能解释一下。

对于客户端上的某些操作(我认为是0.57版)。执行更新操作时,例如

MyCollection.update({name:"John Doe"},{$set:{age:50}});
您需要在客户端将其分为两部分。(仅在客户机上)

您需要首先通过
\u id
查找文档,然后更新该文档。选择器只能是
更新操作和
删除操作的
\u id


这是因为meteor的设计存在安全风险,如果有客户端mongodb数据库,它可以在决定是否允许更新时,任意从服务器获取其他操作的信息。它是在Meteor 0.57中引入的。

在客户端尝试使用$in操作符执行更新时,似乎也会出现这种情况
MyCollection.update({u id:{$in:idList},someModifier,{multi:true})
引发相同的错误。是的,您不能在客户端上使用这种类型的查询。从本质上说,你必须得到结果,循环并完成每一项。客户端不支持多个更新,因为存在安全问题,您可以在拒绝更新(拒绝访问)之前创建查询以了解集合
var doc_id = MyCollection.findOne({name:"John Doe"})._id;
MyCollection.update({_id:doc_id,{$set:{age:50}});