gpt4 book ai didi

node.js - 排除虚拟字段

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:00 27 4
gpt4 key购买 nike

我有一个虚拟字段全名:

UserSchema.virtual('fullname').get(function() {  
return this.firstName + ' ' + this.lastName;
});

有时我希望在查询结果中包含此字段,有时则不需要。我还没想出如何排除它。这是我尝试过的(没有改变任何东西):

UserModel.findOne({ '_id': userId })
.select('-fullname')
.exec(callback);

我应该以其他方式解决这个问题吗?

最佳答案

尝试在 toJSONtoObject 中禁用虚拟,并将它们包含在您想要的查询中

UserModel.findOne({ _id: userId })
.then(doc => console.log(doc.toObject({ virtuals: true }));

如果您想排除特定字段,只需在发送文档之前删除它们即可。

UserModel.findOne({ _id: userId })
.then(doc => doc.toObject({ virtuals: true }))
.then(doc => {
delete doc.mySecretVirtual;
return doc;
});

关于node.js - 排除虚拟字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52978514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com