有什么办法可以处理Prisma中带有嵌套对象的数组?

时间:2019-11-12 02:10:49

标签: graphql graphql-js prisma prisma-graphql

我是Prisma的新手,我已经阅读了文档并完成了一些小项目。

现在我处于一个架构应用程序的大项目中,但是它的架构存在问题。如下所示,我有一个类型为GraphicColumn的类型,在那里我保存了建筑模型的某些列的数据,但是每种模型中的列数可能会有所不同,并且这些列有多个数据条目要保存,因此我正在尝试做下一件事:

type GraphicColumn {
id: ID! @id
data: [{
  column: Int!
  columnData: [Float]
}]
}

如您所见,在对象中,它将是指定列的编号和该列的数据值,因此,它是第1列的对象,并且是其数据的Int值,等等开启第2列,第3列...

每个模型可能在4到6列之间变化,但是在运行数据定义时出现错误 棱柱部署。错误消息如下:

ERROR: Syntax error while parsing GraphQL query. Invalid input "{\n  id: ID! @id\n  name: String!g\n}", expected IgnoredNoComment, ImplementsInterfaces, DirectivesConst or FieldDefinitions (line 1, column 11):

type User {
        ^

{
"data": {
  "deploy": null
},
"errors": [
  {
    "locations": [
      {
        "line": 2,
        "column": 9
      }
    ],
    "path": [
      "deploy"
    ],
    "code": 3017,
    "message": "Syntax error while parsing GraphQL query. Invalid input \"{\\n  id: ID! @id\\n  name: String!g\\n}\", expected IgnoredNoComment, ImplementsInterfaces, DirectivesConst or FieldDefinitions (line 1, column 11):\ntype User {\n          ^",
    "requestId": "local:ck2sd5dbg000i0773z3pkpwx9"
  }
],
"status": 200
}

您知道我该如何替换吗 可以起作用的定义?

1 个答案:

答案 0 :(得分:0)

您要尝试的是将GraphicColumn类型链接到一个或多个ColumnData类型。这是一种关系,具有一定的语法

关系定义两种类型之间连接的语义。 关系中的两种类型通过关系字段连接。

您使用关系语法描述的嵌套数据可能看起来像这样:

type GraphicColumn {
   id: ID! @id
   data: [ColumnData!]! @relation(link: TABLE, name: "GraphicColumnData")
}

type ColumnData {
   id: ID! @id
   column: Int!
   columnData: [Float]
}

有关数据建模和模式设计的更多信息,您可以签出: https://www.prisma.io/docs/datamodel-and-migrations/datamodel-MYSQL-knul/#relations