javascript - GraphQL 类型关系 / Mongoose Schema / populate()
问题描述
在运行查询以检索所有公司时,返回与其公司相关的地区时遇到问题。创建公司时,没有设置区域。区域是单独创建的。
连接/关系是公司内的“区域”和区域内的“母公司”。运行 getAllTerritories 时,“parentCompany”被正确填充(我相信这是由于您在创建 Territory.
所以我想我的问题是,在运行 getAllCompanies 查询时,在 Company 上填充区域数组的最佳方法是什么?
类型:
type Company {
_id: ID
state: String!
name: String
territories: [Territory]
createdAt: String
updatedAt: String
createdBy: User!
}
type Territory {
_id: ID
name: String
parentCompany: Company!
issues: [Issue]
prodAdmins: [ProdAdmin]
masterAgents: [MasterAgent]
createdAt: String
updatedAt: String
createdBy: User!
}
询问:getAllCompanies: [Company]
getAllCompanies: async (_, args, { Company, Territory }) => {
const companies = await Company.find({})
.sort({ createdAt: 'desc' })
.populate({
path: 'territories',
model: 'Territory',
})
.populate({
path: 'createdBy',
model: 'User',
});
return companies;
},
关于公司架构:
territories: {
type: [mongoose.Schema.Types.ObjectId],
ref: 'Territory',
},
解决方案
推荐阅读
- arrays - 如何合并两个排序数组?
- python - 使用 openCV 检测透明度/玻璃透明度
- python - Python SQLAlchemy 错误:ModuleNotFoundError:没有名为“mysql”的模块
- visual-studio - 如何仅对项目中的几个文件禁用 Visual Studio 自动格式化
- javascript - 比较文本并突出显示 react-native 中的差异
- amazon-web-services - Amazon S3 存储桶 - 此 XML 文件似乎没有任何关联的样式信息
- woocommerce - 将成人控件添加到 woocommerce 中的生日字段
- highcharts - 在 Highcharts Stacked Area 图表中,有没有办法突出显示悬停的区域,而不是属于最近点的区域?
- objective-c - iOS-如何在WKWebview中设置多个cookies
- python - Django 预取嵌套的 FK 不起作用