使用 OR 条件使用 mongoose 删除 MongoDB 中的文档
Removing documents in MongoDB with mongoose using an OR condition
从 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
(the instance method), and Model.remove
(静态方法)。
如果您想一次删除一个文档(以便调用它们的中间件),那么您可以像当前一样使用实例方法来完成。
如果你想一次性删除所有匹配的文档(绕过任何中间件),那么你可以使用静态方法并在调用中包含条件:
Message.remove({$or: [{'from.id': req.user.id}, {'to.id': req.user.id}]})
.exec(function(err){...})
从 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
(the instance method), and Model.remove
(静态方法)。
如果您想一次删除一个文档(以便调用它们的中间件),那么您可以像当前一样使用实例方法来完成。
如果你想一次性删除所有匹配的文档(绕过任何中间件),那么你可以使用静态方法并在调用中包含条件:
Message.remove({$or: [{'from.id': req.user.id}, {'to.id': req.user.id}]})
.exec(function(err){...})