【问题标题】:Unable to "delete" the property of the object in mongoose Document [duplicate]无法“删除”猫鼬文档中对象的属性[重复]
【发布时间】:2020-12-22 05:02:10
【问题描述】:

我无法从 mongoose 中删除(在 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 

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    user Document 实例的 last_name 属性是 Mongoose 从模型架构中添加的 getter,以使生活更轻松。

    您可能能够delete 的真实文档保存在一个内部变量中。

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

    user.last_name = undefined
    await user.save()
    

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2017-07-05
      • 2021-10-02
      • 2019-07-25
      • 2015-10-10
      • 2016-03-20
      相关资源
      最近更新 更多