以下是问题的示例架构:
const sample = new Schema({
scope: {
type: String,
enum: ['draft', 'published'],
default: 'draft',
},
isOutOfService: {
type: Boolean,
default: false,
},
});
模式的示例数据:
const data = {
_id: 1,
scope: 'draft',
isOutOfService: false,
};
现在,我想将字段scope
更新为published
,将isOutOfService
值更新为true
。
我使用下面的代码与mongoose:
const updated = await sample.findOneAndUpdate({
_id: 1
}, {
$set: {
scope: 'published',
isOutOfService: true
}
}, {
new: true,
}).lean().exec();
更新操作的结果是:
{
_id: 1,
scope: 'published',
isOutOfService: false,
}
我不知道为什么scope
被替换而isOutOfService
没有?