如何为嵌套的mongodb文档编写GraphQL模式,查询和变异

时间:2020-09-21 04:16:14

标签: graphql apollo-server

下面是我的mongodb文档

{
    field1: "Value 1",
    field2: 123
    field3: {
        actual: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        },
        planned: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        }
    },
    field4: {
        actual: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        },
        planned: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        }
    },
    field5: {
        actual: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        },
        planned: {
            startAt: "2007-12-03T10:15:30.000Z",
            endAt: "2007-12-03T10:15:30.000Z"
        }
    }
}

我想为上述文档编写typeDef,查询和变异。我正在使用Apollo Server Express。我是graphql的新手,对如何将优化的graphql类型编写为文档字段(field3,field4,field5)是嵌套对象感到困惑。

1 个答案:

答案 0 :(得分:0)

这可能会对您有所帮助,但这取决于您的解析器:

type Query {
fields:[Field]
}

 type Mutation {
createField(input:FieldInput!):Field
}

type Field {
  actual:Time
  planned:Time
}

input FieldInput {
  actual:TimeInput
  planned:TimeInput
 }

 type Time {
  startAt:String
  endAt:String
 }

 input TimeInput {
  startAt:String
  endAt:String
 }
  • 请注意,这是为.graphql文件创建的,因此,如果您只想使用javascript生成架构,则可能需要对其进行重构