当我尝试使用此代码在Google Chrome控制台中使用选择器删除文档时,您是否曾见过像我这样的错误:
Products.remove({name:"ABC"});
错误是:
Uncaught
Meteor.makeErrorType.errorClass {error: 403, reason: "Not permitted. Untrusted code may only remove documents by ID.", details: undefined,
message: "Not permitted. Untrusted code may only remove documents by ID. [403]", errorType: "Meteor.Error"…}
那么我应该怎么做才能通过选择器删除文档。
答案 0 :(得分:1)
“删除的行为取决于它是由受信任的代码还是不受信任的代码调用。受信任的代码包括服务器代码和方法代码。不受信任的代码包括客户端代码,如事件处理程序和浏览器的JavaScript控制台。” p>
来自Meteor Docs:Collection.remove()
客户端不受信任,因此仅删除ID。服务器端方法将允许您基于选择器进行删除。所以你需要一个方法然后从客户端调用。
您还应该熟悉使用:Methods
答案 1 :(得分:1)
不要这样做,但
Products.remove({_id: Products.findOne({name:"ABC"})._id});
更好地使用方法......