Mongoose - удаление нескольких документов в один вызов функции

В документации есть метод deleteMany()

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

Я хочу удалить несколько документов, имеющих одно общее свойство, и другое свойство изменится. Что-то вроде этого:

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

Каким будет правильный синтаксис для этого?

Ответы

Ответ 2

Вы также можете использовать.

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

Ответ 3

Да, $in - это идеальное решение:

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

Ответ 4

Мне пришлось изменить id на _id, чтобы он работал:

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

Это происходит, если идентификатор не определен и вместо него используется идентификатор по умолчанию:

"Mongoose назначает каждой из ваших схем поле _id по умолчанию, если оно не передается в конструктор схемы". мангусты

Ответ 5

Вы ищете оператор $in:

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

  console.log("deleted sites"+sites);

});