有什么方法可以在 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
我是 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