我正在尝试使用以下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' }
);
答案 0 :(得分:1)
正如你在评论中所说。
您忘记将active
字段添加到mongoose架构中。