У меня есть коллекция под названием «разрешения» на MongoDB. Я хочу реализовать такое простое обновление:
let schema = new Schema({
title: String
});
let Permissions = mongoose.model("Permission", schema);
let permission = new Permissions();
let query = {};
let newValues = {
$set: {
title: "Yes"
}
};
permission.updateOne(query, newValues, (err, docs) => {
console.info(err); // null
console.info(docs); // { ok: 0, n: 0, nModified: 0 }
if (err) return cast.error(err);
return cast.ok();
});
Однако я получаю { ok: 0, n: 0, nModified: 0 } в журнале консоли docs.
и null в журнале консоли err.
Что я делаю неправильно?
Это работает. Когда мне делать новый экземпляр? При использовании только сохранения?
Итак, какие изменения были внесены в код ....... я также получаю nModified: 0

Models are fancy constructors compiled from Schema definitions. An instance of a model is called a document. Models are responsible for creating and reading documents from the underlying MongoDB database.
Таким образом, вам нужно создать экземпляр только во время вызова .save(). Другие операции (обновление, чтение, удаление) применяются к существующему документу и, следовательно, нет необходимости создавать экземпляр.
У меня аналогичная проблема: мое обновление дало мне {n: 1, nModified: 0, ok: 1}. Мой элемент был найден, но не обновился. Это потому, что я использовал экземпляр объекта схемы, а не саму схему. Спасибо большое.
Удалите этот
let permission = new Permissions();. Нет необходимости создавать новый экземпляр