我在Post schema中有一个Tags数组:
1x个月
标签看起来像这样:{ name: String }
个
当我填充tags
数组时,它当然是用标记对象文字填充的。
有没有一种方法可以让mongoose只使用标签中的name
字符串填充数组?
我尝试只指定名称,但是name
在对象文字中返回。
目前人口产出:[ { name: 'React' }, { name: 'JavaScript' } ]
个
但我希望是:[ 'React', 'JavaScript']
个
有没有办法用Mongoose做到这一点?
3条答案
按热度按时间djmepvbi1#
您可以使用'post' Query Middleware函数。该函数将在Model.find()或Model.findOne()查询返回实际数据之前触发。在函数内部,您可以使用Array.map将数据转换为所需的格式。
字符串
你也可以用同样的方法处理Model.find()。
型
jfewjypa2#
你可以使用一个虚拟的返回一个减少的标签数组:
字符串
iqjalb3h3#
你要找的是填充“转换”选项。
您可以为正在填充的每个文档触发一个函数,对于您的用例,它看起来像这样:
字符串