Мягкое удаление с использованием Mongoose не работает

CodeChimp спросил: 28 апреля 2018 в 09:39 в: javascript

Я пытаюсь мягко удалить элементы, используя следующий код Mongoose:

// Remove a client
exports.delete = (req, res) => {
  logger.info(`Removing Client ${req.params.clientId}`);
  Client.findByIdAndUpdate(
    { _id: req.params.clientId },
    { active: false },
    { new: true }
  )
  .then(client => {
    logger.info('client: ', client);
    if (!client) {
      return res.sendStatus(404);
    }
    res.sendStatus(204);
  })
  .catch(err => {
    logger.error(err);
    res.status(422).send(err.errors);
  });
};

Но по какой-то причине флаг active просто не хочет установите false. Журнал показывает, что clientId передается, а код then содержит данные Клиента, но флаг active по-прежнему установлен в true. Мне нужно как-то скрыться или зафиксировать?

Изменить - Добавить схему

export const ClientSchema = new Schema(
  {
    name: {
      type: String,
      trim: true,
      index: true,
      unique: true,
      required: true,
    }
  },
  { collection: 'clients' }
);

1 ответ

Есть решение
Anthony Winzlet Grégory NEUT ответил: 28 апреля 2018 в 11:52

Как вы сказали в комментарии.

Вы забыли добавить active в схему mongoose.