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

如何编写嵌套mongodb文档的GraphQL模式、查询和变异,graphql,apollo-server,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: {

下面是我的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、查询和变异。我正在使用阿波罗快递服务器。我是graphql新手,所以对如何编写优化的graphql类型并不感到困惑,因为文档字段(field3、field4、field5)是嵌套对象

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

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生成模式,可能需要对其进行重构