Meteor开发平台入门 互动版

删除文档 - 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方法在前端 和后端的使用差异。