繁体   English   中英

GraphQL类型关系/猫鼬模式/ populate()

[英]GraphQL Type relationship / Mongoose Schema / populate()

运行用于检索所有公司的查询时,返回与其公司相关的领土时遇到问题。 创建公司时,不会设置地区。 区域是分别创建的。

连接/关系是公司内的“领土”和领土内的“父公司”。 运行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',
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM