问题描述
我有两个相关的模型:Recipe
和User
。
当我使用populate()
从数据库中获取食谱和相关用户时,我希望返回的用户对象具有id
属性而不是_id
属性。
const recipe = await Recipe.findOne({ _id }).populate('user','-password');
当我记录用户模型的值时,我想得到这个:
{
id: 5eea82b11a97e9429ca61778,name: 'John Doe',email: '[email protected]'
}
我尝试将id
属性添加到用户对象,但没有任何改变。我仍然拥有_id
属性。
recipe.user = { ...recipe.user,id: recipe.user_id };
解决方法
noteSchema.set('toJSON',{
transform: (document,returnedObject) => {
returnedObject.id = returnedObject._id.toString()
delete returnedObject._id
delete returnedObject.__v
}
})
这是我用来删除下划线的内容-您可以转换文档并删除不需要的位