Mongoose - 一次函数调用中删除多个文档

45

文档中有一个deleteMany()方法

Character.deleteMany({ name: /Stark/, age: { $gte: 18 } }, function (err) {});

我想删除多个具有一个共同属性和其他属性不同的文档。就像这样:

Site.deleteMany({ userUID: uid, id: [10, 2, 3, 5]}, function(err) {}

这个正确的语法是什么?

4个回答

104

7
可以省略 $in,直接写成 id: [10, 2, 3, 5] - Rami Chasygov

21

您还可以使用。

Site.remove({ userUID: uid, id: { $in: [10, 2, 3, 5]}}, function(err, response) {});

12
在Mongoose 5.x中,它已被弃用,应该使用deleteMany。 - Darin Kolev

11

我不得不将id更改为_id才能使其正常工作:

Site.deleteMany({ _id: [1, 2, 3] });

如果未定义ID并且默认ID被使用,则会发生这种情况:
"Mongoose为每个模式分配一个默认的_id字段,如果没有传递到Schema构造函数中。" mongoose文档

7

是的,$in 是一个完美的解决方案:

Site.deleteMany({ userUID: uid, id: { $in: [10, 2, 3, 5] } }, function(err) {})


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接