Обновление несуществующего документа не считается ошибкой записи. Вы можете console.log
результат, чтобы увидеть, что он просто информирует вас о количестве подходящих элементов:
let result = await Test.bulkWrite(bulkArr);
console.log(result);
, который печатает:
...
nMatched: 0,
...
Запуск $inc
с отрицательным значением все еще действителен - вы можете сделать это, и даже если у вас есть правило проверки, такое как min:0
, оно не будет применено, так как $inc
выполняется на сервере базы данных, а mon goose не знает, станет ли значение вашего поля отрицательным после этой операции или нет. Правило min
будет применяться, когда вы хотите вставить новый документ или заменить существующий, используя метод .save()
.
Как тогда получить ошибку? Попробуйте нарушить уникальный ключ, вставив одно и то же значение в уникальный индекс - такая ситуация явно вызывает исключение.