mongoose虚拟属性该怎么使用

clipboard.png

上面例子中通过virtual('c'),定义了虚拟字段,但是在后面find()查询中,查询出来的文档中并没有这个虚拟字段c,这个虚拟字段定义之后是出现哪里?

阅读 5.2k
1 个回答

查询出来的文档对象中应该有这个字段,你可以试着打印result.c就可以看出来,至于为什么直接打印文档对象看不到,mongoose官网有这么一句话:

If you use toJSON() or toObject() (or use
JSON.stringify() on a mongoose
document) mongoose will not include
virtuals by default. Pass { virtuals: true }
to either toObject() or toJSON().

你可以

UserSchema.set('toJSON', { virtuals: true })

然后

console.log(JSON.stringify(result))

就可以看到了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进