node.js - Mongoose 在填充方法中返回 id 而不是 _id
问题描述
我有两个相关的模型: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
}
})
这就是我用来删除下划线的方法 - 您可以转换文档并删除您不想要的位
推荐阅读
- sql - 最小的有效 sql server 语句
- geojson - 在 Apache Superset Dashboard 中使用自定义地图
- scala - 使用具有不同字段的 Play Json 解析 Json
- composer-php - 作曲家从自托管 GitLab 实例创建项目
- ios - JSQMessagesViewController 在聊天中不显示气泡图
- powershell - 无法从 powershell 静默安装 VSTO
- yarnpkg - 如何通过yarn workspaces在app中添加多个工作区
- java - Spring Security,为什么我一直自动登录?
- jmeter - Jmeter插件管理器安装插件失败
- javascript - 是否可以使用专门的代码将 .p12 或 .pfx 文件导入 Selenium Webdriver?