使用Mongoose进行软删除无法正常工作

时间:2018-05-22 11:19:27

标签: javascript node.js mongodb mongoose

我正在尝试使用以下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 个答案:

答案 0 :(得分:1)

正如你在评论中所说。

您忘记将active字段添加到mongoose架构中。