在运行用于检索所有公司的查询时,返回与其公司相关的领土存在问题。创建公司时,不会设置地区。区域是分别创建的。
连接/关系是公司内的“领土”和领土内的“父公司”。运行getAllTerritories时,“ parentCompany”已正确填充(我相信这是由于您在创建Territory时选择了parentCompany的事实。
所以我想我的问题是,在运行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',
},