Mongoose - 无法检索快速路线中的虚拟字段
Posted
技术标签:
【中文标题】Mongoose - 无法检索快速路线中的虚拟字段【英文标题】:Mongoose - Unable to retrieve virtual fields in express route 【发布时间】:2016-03-24 13:46:07 【问题描述】:我正在构建一个读取用户列表的 API。我的猫鼬用户模型有一个虚拟字段“全名”,它返回一个包含用户名和姓的串联字符串。 当我读取数据库并从我的 API 以 JSON 格式返回用户时,我无法在返回的 JSON 中看到此字段。
事实证明,JSON stringify 删除了虚拟字段,即使它们的“typeof”返回“string”
我找到了一个解决方案,方法是使用数组映射函数将这些虚拟对象提取到其他属性中,但我必须将所有属性克隆到另一个对象才能使它们通过字符串化。它使我遍历无效的值。我更喜欢更清洁、有记录的解决方案
【问题讨论】:
【参考方案1】:我一直在向我的 mongoose 架构添加以下选项:
toObject:
virtuals: true
,toJSON:
virtuals: true
事实证明,在记录整个数据后,它确实可以在 JSON.Stringified 时输出虚拟对象。还需要将 virtuals: true 放在 toObject 选项中。
【讨论】:
以上是关于Mongoose - 无法检索快速路线中的虚拟字段的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Autopopulate Mongoose Mongodb 选择要检索的字段?