使用OR条件使用mongoose删除MongoDB中的文档

时间:2015-02-05 01:14:30

标签: javascript node.js mongodb express mongoose

this post开始,我知道我无法用我目前在下面显示的代码完成我需要的工作。但是,我遇到的所有文档都没有给出需要在mongoose中向remove()函数提供OR条件的用例,我不确定如何构造它。我需要以下工作......

router.delete('/friend/:id',function(req,res){
    var response = new Response();
    Message.find().or([{'from.id':req.user.id},{'to.id':req.user.id}]).exec(function(err,messages){
        _.each(messages,function(message){
                message.remove(function (err,message) {

                })
            });
        });
    res.send(response.complete());
});

1 个答案:

答案 0 :(得分:1)

有两种remove方法:Model#remove(实例方法)和Model.remove(静态方法)。

如果您想一次删除一个文档(以便调用他们的中间件),那么您可以像使用当前正在执行的实例方法一样。

如果要一次删除所有匹配的文档(绕过任何中间件),那么您可以使用静态方法并在调用中包含条件:

Message.remove({$or: [{'from.id': req.user.id}, {'to.id': req.user.id}]})
       .exec(function(err){...})