Я пытаюсь обновить несколько документов с помощью мангуста (3.8.37), но ни один документ не обновляется.Ошибка обновления нескольких документов с помощью мангуста
Я сделал все, что я узнал от других вопросов (см):
- Используйте функцию обратного вызова
- Укажите мульти: истинный
Мой оператор обновления :
Animal.where({ type: type}).update({deleted:1}, { multi: true, overwrite: true }, function (err,doc) {
console.log("updates: "+doc);
});
обновления: 0
Когда я просто пересчитываю документы, я получу результат. => Запрос является правильным
Animal.where({type: type}).count(function (err,doc) {
console.log("count: "+doc);
});
Количество: 299
Когда я опускаю несколько: истинный параметр, первая запись обновляются. => Оператор обновления является правильным, слишком
Animal.where({ type: type}).update({deleted:-1}, function (err,doc) {
console.log("updates: "+doc);
});
обновления: 1
Так где ошибка?
Существует несколько вопросов, касающихся этой темы. К сожалению, ни одна из них не решает мою проблему.
- how can i update multiple documents in mongoose
- Mongoose update multiple documents doesn't update anything
- Mongoose: how to update *all* persons matching a condition?
** UPDATE
added a log callback Я и обнаружил, что ни один из запросов к MongoDB не выполняется до тех пор, как опции (несколько: true).
Попробуйте изменить '.update ({deleted: 1}, ...' to '.update ({$ set: {deleted: 1}}, {multi: true}, function ...' – Molda
@Molda Спасибо за но я уже пробовал это. Не помогло. –