删除文档 - Collection.remove
使用集合对象的remove(selector,[callback])方法删除指定的文档。下面的示例删除 persons集合中所有名为Jason的文档:
var demo = new Mongo.Collection("persons");
demo.remove({name:"Jason"});
≡ 使用方法
remove()方法的参数如下:
- selector - 文档选择符,可以是文档id或合法的MongoDB选择符
- callback - 指定回调函数function(error){...},在更新完成后被调用
在后端调用该方法时,如果不指定callback参数,将阻塞执行直至删除完成,或者在发生 错误时抛出异常;前端不支持同步阻塞方式的执行,因此如果不设置callback参数,将 无法捕捉错误和执行结果。
≡ 受信代码与非受信代码
remove()方法的行为取决于是在受信代码中被调用,还是在非受信代码中被调用。服务端 代码被认为是受信代码,而浏览器中运行的客户端代码被认为是非受信代码。
在受信代码中,可以使用任意MongoDB的选择符实现一次删除多个文档,然而在非受信 代码中,只能使用文档的_id作为选择符,一次删除一个文档,而且还必须通过应用层 设置的allow和deny规则检查。
执行以下命令复位test应用、删除源文件:
~/test$ meteor reset↵
~/test$ rm -rf \*↵
执行以下命令拷贝col-remove示例代码、运行并查看运行结果:
~/test$ cp ~/demos/col-remove/* .↵
~/test$ meteor↵
理解并修改col-remove示例代码,通过练习掌握Collection对象的remove方法在前端 和后端的使用差异。