无法“删除”猫鼬文档中对象的属性

时间:2020-09-03 01:19:19

标签: node.js mongoose

我无法从猫鼬中删除(在猫鼬中,未设置)字段,但是$unset在工作。以下示例可以很好地说明我的问题。

没有$unset

let user = await User.findById(user_id);
delete user.last_name;
await user.save();

user = await User.findById(user_id);
console.log(user.last_name); // Santiago 

使用$unset

await User.findByIdAndUpdate(user_id, { $unset: { last_name: true } });

let user = await User.findById(user_id);
console.log(user.last_name); // undefined 

1 个答案:

答案 0 :(得分:2)

last_name Document实例的user属性是Mongoose从模型架构中添加的吸气剂,以简化生活。

您可能可以delete从中获得的真实文档保存在内部变量中。

您可以将字段设置为undefined,猫鼬会为您解决这个问题:

user.last_name = undefined
await user.save()