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

标签 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());
});

最佳答案

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

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

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

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

关于javascript - 使用 mongoose 使用 OR 条件删除 MongoDB 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28334601/

相关文章:

node.js - Mongoose,如何在现有 JSON 文档中将元素附加到数组

javascript - nedb 方法更新和删除创建一个新条目而不是更新现有条目

javascript - 你如何在 React-Native 中为 android 制作启动/启动画面?

javascript - 在 Rails Assets 管道中组织 javascript

php - Mongodb/Couchdb 代替 MySQL(从 PHP 切换到 Node)

Mongodb 每两小时聚合一次

javascript - jQuery 事件构造函数

javascript - angularJS http GET参数在服务器上未定义

node.js - Node.js 中通过 TCP 进行可靠消息传递

javascript - 传递整个对象真的是做到这一点的方法吗?