Тип отношений GraphQL / Схема Mongoose / populate () - PullRequest
0 голосов
/ 15 ноября 2018

Возникла проблема с возвратом территорий, связанных с их Компанией, при выполнении запроса для поиска всех Компаний. Когда компания создается, территория не устанавливается. Территории создаются отдельно.

связи / отношения являются «территориями» внутри Компании и «родительской компанией» в пределах Территории. При запуске getAllTerritories «parentCompany» заполняется правильно (я полагаю, это связано с тем, что вы выбрали parentCompany при создании территории.

Итак, я думаю, мой вопрос: Каков наилучший способ заполнить массив территорий в Company при выполнении запроса getAllCompanies?

Типы:

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',
},
...