Моя проблема заключается в чтении свойств вложенного объекта, который находится внутри другого вложенного объекта.
GraphQL
type Mapping {
id: ID!
partnerSegmentId: ID!
ctSegmentId: CtSegment!
}
type PartnerSegment {
id: ID!
name: String!
platformId: Int!
partner: Partner!
}
type Partner {
id: ID!
name: String!
}
Как только я пытаюсь запросить это как:
{
allMappings {
partnerSegmentId {
id
name
partner {
id
}
}
}
}
Я получаю:
{
"data": {
"allMappings": [
null
]
},
"errors": [
{
"message": "Cannot return null for non-nullable field Partner.name.",
"locations": [
{
"line": 8,
"column": 9
}
],
"path": [
"allMappings",
0,
"partnerSegmentId",
"partner",
"name"
]
}
]
}
Схема сопоставления
const mappingSchema = new mongoose.Schema(
{
partnerSegmentId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'PartnerSegment',
required: [true, 'Mapping must have partner segment id.']
},
ctSegmentId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'CtSegment',
required: [true, 'Mapping must have CT segment id.']
}
},
{ timestamps: true }
);
Я пытался читать отдельно модели Partner, PartnerSegment и Mapping. Все работает отлично. Любая идея, где я должен искать источник проблемы? Я проверил документы Mongodb и идентификаторы выглядит хорошо. Я полагаю, это вина моей модели.
Если вы хотите поближе взглянуть, это репозиторий проекта .