从猫鼬文档实例中删除属性

jos*_*rry 3 mongoose node.js

我需要从猫鼬文档实例中删除一个属性。我发现了很多问题,这些问题说明了如何从数据库中删除它,但这不是我想要的。

我需要下拉文档,包括一个用于检查安全性访问的字段,然后我要剥离该字段,以便在下游代码决定调用toObject()并将对象发送回客户端时,该字段不会被泄露。

有什么想法吗?

Ada*_*eis 7

从 2.4 版开始,您可以执行以下操作:

doc.field = undefined;
await doc.save();
Run Code Online (Sandbox Code Playgroud)

这将本质上$unset该领域


ser*_*eyz 5

我需要从文档实例中删除密码属性,但在API文档中没有找到任何内容。这是我所做的:

doc.set('password', null); // doc.password is null
Run Code Online (Sandbox Code Playgroud)

然后我发现您也可以这样做:

delete doc._doc.password // doc.password is undefined
Run Code Online (Sandbox Code Playgroud)