使用findById获取猫鼬文档后,我无法过滤/忽略某些字段
我尝试了const { password, ...user } = await UserModel.findById(123);
但是用户不是普通的js对象而是猫鼬文档。
请注意,.lean()
和.select()
不是一个选择。
理想情况下,我想要类似于const { password, ...user }
但没有瘦身的东西。
我想删除user.password
可以用,但是我不想弄乱猫鼬文档本身。因为它具有字段的设置器/获取器。
答案 0 :(得分:0)
let user =等待UserModel.findById(123,'user');
在这里您可以输入投影作为查询中的第二个参数,并添加更多键以作为“用户密码”等发送响应。
答案 1 :(得分:0)
在猫鼬Document
中,所有返回的文档都位于属性_doc
中。理想的推荐方法是在查询上使用lean()
。但是要回答您的用例,请尝试以下操作:
const result = await UserModel.findById(123);
const { password, ...user } = result._doc;