amazon-web-services - AppSync - 当数组属性具有与之关联的`@key`指令时,无法使用数组创建架构
问题描述
我最近向@key
模式字段添加了一个指令,以便我可以按该字段进行搜索,尽管我现在收到一个错误,暗示先前正确的数据类型不是预期的。它说它需要一个字符串但得到一个列表,尽管该字段是一个包含枚举的列表。
是否可以在不使用的情况下按特定字段查询@key
?@key
如果没有,当(看似)将列表的预期类型更改为字符串时,如何创建记录?
下面是我的代码,我将其添加@key
到categories
列表中,但现在当我尝试创建新代码时Journey
,出现如下所示的错误。
这是架构:
type Journey @model
@auth(rules: [{ allow: owner, operations: [create, delete, update] }])
@key(name: "getJourneysByCategories", fields: ["categories"], queryField: "getJourneysByCategories")
@key(name: "getJourneysByName", fields: ["name"], queryField: "getJourneysByName") {
id: ID!
name: String!
description: String
coverImage: String
isPrivate: Boolean!
members: [JourneyUsersBridge] @connection(name: "JourneyUsers")
moderators: [JourneyModeratorsBridge] @connection(name: "ModeratedBy")
creator: User! @connection(name: "JourneyCreator")
goals: [Goal] @connection(name: "JourneyGoals")
posts: [Post] @connection(name: "JourneyPosts")
categories: [JourneyCategory!]!
}
这是用于创建的代码示例Journey
:
type CreateJourneyInput = {
name: string;
description?: string | null;
coverImage?: string | null;
isPrivate: boolean;
categories: Array<JourneyCategory | null>;
journeyCreatorId: string;
};
const journey: CreateJourneyInput = {
name: 'My GraphQL Journey',
description: 'This Journey was made using GraphQL minus DataStore!',
isPrivate: false,
categories: [JourneyCategory.EXMAMPLE],
journeyCreatorId: userId
};
const result = await API.graphql(
graphqlOperation(mutations.createJourney, { input: journey })
);
这是完整的错误:
"One or more parameter values were invalid: Type mismatch for Index Key categories Expected: S Actual: L IndexName: getJourneysByCategories (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: U4EB7HPO1GU5LHVAOPMGAJJHANVV4KQNSO5AEMVJF66Q9ASUAAJG)"
所以我删除了getJourneysByCategories
密钥,上传工作正常。这里发生了什么,为什么?
我只是希望能够通过查询categories
- 也许@key
不是正确的路线?key 指令是否不适用于列表?
解决方案
推荐阅读
- java - 模拟问题 - 尝试模拟外部 API 方法时出现空指针异常
- kubernetes - CoreDNS 不尊重本地 DNS
- javafx - JavaFx RichText 运行时错误 java.lang.NoClassDefFoundError: org/fxmisc/richtext/TextFlowLayout
- android - 设计条纹卡输入小部件
- php - javascript(在网页上)和本地网络上的 mc 之间的 udp 套接字连接
- assembly - 汇编程序 16 位 DOS 键盘输入输出屏幕错误
- python-3.x - 我可以用什么作为进度条和计数迭代?Python
- android - 我想在 Flutter 的音频播放器应用程序中从 Android 存储设备中获取所有 MP3 文件,并在 Listview.Builder 中显示它们
- android - 如何将android静态库与不同的ABI结合起来?
- algorithm - 加法的时间复杂度