填充方法中的 Mongoose return id 而不是 _id
Mongoose return id instead of _id in populate method
我有两个相关模型:Recipe
和 User
。
当我使用 populate()
从数据库中获取食谱和相关用户时,我希望返回的用户对象具有 id
属性 而不是 _id
属性.
const recipe = await Recipe.findOne({ _id }).populate('user', '-password');
当我记录用户模型的值时,我想得到这个:
{
id: 5eea82b11a97e9429ca61778,
name: 'John Doe',
email: 'johndoe@gmail.com'
}
我尝试将 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
}
})
这就是我用来删除下划线的方法 - 您只需转换文档并删除不需要的位
我有两个相关模型:Recipe
和 User
。
当我使用 populate()
从数据库中获取食谱和相关用户时,我希望返回的用户对象具有 id
属性 而不是 _id
属性.
const recipe = await Recipe.findOne({ _id }).populate('user', '-password');
当我记录用户模型的值时,我想得到这个:
{
id: 5eea82b11a97e9429ca61778,
name: 'John Doe',
email: 'johndoe@gmail.com'
}
我尝试将 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
}
})
这就是我用来删除下划线的方法 - 您只需转换文档并删除不需要的位