Graphql 主键与放大模式文件之间的关系
通常情况下,我不会尝试在我的放大模式中创建主键之间的关系,尽管我正在尝试重新创建一个friends代码,以便可以使用放大定期部署它,因此在这种情况下,我实际上没有选择 我的问题是,我想在这两个主键之间创建一个链接,并且想知道是否有一种方法可以做到这一点,我也已经遵循了文档 理想情况下,我希望schema.graphql文件如下所示:Graphql 主键与放大模式文件之间的关系,graphql,aws-amplify,aws-appsync,Graphql,Aws Amplify,Aws Appsync,通常情况下,我不会尝试在我的放大模式中创建主键之间的关系,尽管我正在尝试重新创建一个friends代码,以便可以使用放大定期部署它,因此在这种情况下,我实际上没有选择 我的问题是,我想在这两个主键之间创建一个链接,并且想知道是否有一种方法可以做到这一点,我也已经遵循了文档 理想情况下,我希望schema.graphql文件如下所示: type ShoppingList @model @key(fields: ["UPC"]) { UPC: Products @conn
type ShoppingList @model @key(fields: ["UPC"]) {
UPC: Products @connection
quantity: Int
timestamp: Int
}
type Products @model @key(fields: ["UPC"]) {
UPC: String!
Description: String
Name: String
Price: Float
ProductId: String
combinedSeaarchKey: String
Img_URL: String
LongDescription: String
UserForRecommendations: Boolean
Hidden: Boolean
TrainingImageWidthInches: Float
}
在尝试部署时,我得到错误“Expected scalar and get Products”
理想情况下,我也希望模式相同,因为我不想重新编写我的friends客户端应用程序,而宁愿尝试在模式中修复它
因此,任何帮助都将不胜感激!谢谢我正在寻找解决同一个一般问题的方法,偶然发现了你的帖子,但后来解决了我的问题。我的问题有点无关,我试图在非标量字段上排序。在您的例子中,您通过尝试从非标量实体中生成密钥来接收该错误。从ShoppingList中删除@key,您应该清除错误,但让我们谈谈我认为您正在努力实现的目标 我想你是想在购物清单和产品之间建立一种1:多的关系 在您的ShoppingList代码中,您将产品作为单个实体,但可能意味着拥有一系列产品:
UPC: [Products]
在此基础上,您需要定义UPC和产品之间的连接。您正确地调用了@connection的用法,但没有创建连接。要在1:Many关系中创建连接,您需要1个购物列表和许多产品。要实现这一点,您可能需要以下几点:
type ShoppingList @model {
id: ID! #make sure you're specifying a PK for each object
UPC: [Products] @connection(keyName: "relatedShoppingList" fields: ["id"])
quantity: Int
timestamp: Int
}
type Products @model {
id: ID!
parentShoppingList: ShoppingList @connection(fields: "relatedShoppingList")
UPC: String!
Description: String
Name: String
Price: Float
ProductId: String
combinedSearchKey: String
Img_URL: String
LongDescription: String
UserForRecommendations: Boolean
Hidden: Boolean
TrainingImageWidthInches: Float
}
我预见到您的数据设置会出现一些额外的问题,但这应该会消除产品和购物清单之间的1:many关系