Обновление Mongoose не обновляется: {ok: 0, n: 0, nModified: 0}

У меня есть коллекция под названием «разрешения» на 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.

Что я делаю неправильно?

Удалите этот let permission = new Permissions();. Нет необходимости создавать новый экземпляр

Ashh 09.10.2018 10:30

Это работает. Когда мне делать новый экземпляр? При использовании только сохранения?

Raz 09.10.2018 10:31

Итак, какие изменения были внесены в код ....... я также получаю nModified: 0

Rohit Kumar 02.02.2021 15:28
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
6
3
6 052
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно документы

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}. Мой элемент был найден, но не обновился. Это потому, что я использовал экземпляр объекта схемы, а не саму схему. Спасибо большое.

Aymer-El 17.03.2021 11:50

Другие вопросы по теме