我无法从猫鼬中删除(在猫鼬中,未设置)字段,但是$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
答案 0 :(得分:2)
last_name
Document实例的user
属性是Mongoose从模型架构中添加的吸气剂,以简化生活。
您可能可以delete
从中获得的真实文档保存在内部变量中。
您可以将字段设置为undefined
,猫鼬会为您解决这个问题:
user.last_name = undefined
await user.save()