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

Is any way to work arrays with nested objects in Prisma?

我是 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
}

你知道我该如何替换它吗 一些有效的定义?

您要做的是 link 将 GraphicColumn 类型转换为一种或多种 ColumnData 类型。这是一个关系并且有一定的语法

A relation defines the semantics of a connection between two types. Two types in a relation are connected via a relation field.

您使用关系语法描述的嵌套数据可能如下所示:

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