首页 > 解决方案 > 将对象存储到数组中,而不在 AWS AppSync 架构中创建新表

问题描述

我将 AWS amplify 与 React 以及利用 AWS AppSync 的 GraphQL API 结合使用。我对 graphQL 很陌生,我的架构目前是这样的。这是放大应用程序内部的架构:

type Note @model {
  id: ID!
  name: String!
  title: String
  movie: String
}

例如,我想在 Note 类型的组件中存储一个对象数组,如下所示:

type Note @model {
  id: ID!
  name: String!
  title: String
  movie: String
  components: []
}

我知道我可以创建一个新表并执行此操作:

type Note @model {
  id: ID!
  name: String!
  title: String
  movie: String
  components: [elements!]!
}
 
 type elements @model {
  id: ID!
  item: String!
}

但是,我不想创建一个新表。有没有办法做到这一点?

我在我们的平台上看到了类似的问题,他们建议使用 AWSJSON AWS Scalar Types

但是没有使用它们的实际资源。如果这是解决方案,请帮助我完成我们如何为他们编写突变的程序。

标签: amazon-web-servicesgraphqlaws-amplifyaws-appsyncaws-amplify-cli

解决方案


听起来您确实想要elements架构中的新类型,但是您应该将解析器配置为Note指向解析器指向的任何表中的类似数组的列。请记住,graphQL 模式中的类型不一定需要与数据源中的内容一一对应。你的数据库结构是什么样的?


推荐阅读