具有“自定义类型”属性的DynamoDB表的Graphql Mutation查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有“自定义类型”属性的DynamoDB表的Graphql Mutation查询相关的知识,希望对你有一定的参考价值。

在Graphql Appsync中需要帮助

Appsync自定义类型:

type Employee 
        id: ID!
        name: String
        experiences: [Experiences]
        projects: [Projects]


Dynamo DB table Employee

Table: Employee

    id:’’,
    name:’’,
    experience:[
        
            company:’’,
            from:’’,
            till:’’
        ,
        
            company:’’,
            from:’’,
            till:’’
        
    ],
    projects:[

        
            title:’’,
            date:’’

        ,
        
            title:’’,
            date:’’

         ,
    ]


我们需要在2个不同的变异查询中更新经验和项目,但更新应该在同一个dynamodb表中完成。以下是我的疑惑:

  • 需要为Projects&Experience创建单独的dynamodb表。如何为此表更新项目和diff变异经验编写变异查询?
答案

让我试着回答你的问题:

我们需要在2个不同的变异查询中更新经验和项目,但更新应该在同一个dynamodb表中完成。

您可以在AppSync中创建单个DataSource,并具有2个针对此DataSource解析的突变。这样,您的突变接受一系列经验或项目类型,并且您的解析器负责写入此DynamoDB数据源。

需要为Projects&Experience创建单独的dynamodb表。

这实际上取决于你的用例。使用单独的DynamoDB表可帮助您使用二级索引获取[1:N]相关类型。单独的表还可以帮助您对相关类型进行分页,而不是在单个调用中获取所有依赖项。如果您最终使用单个表来存储Employee / Projects / Experience,请参阅DynamoDB解析程序中的Lists and Maps types部分。

如何为此表更新项目和diff变异经验编写变异查询?

就像我提到的那样,你只需在你的Schema中定义2个接受类型列表的突变。在解析器中,您将写入适当的表。请参阅AppSync中的following documentation on DynamoDB Resolvers

或者,您也可以使用DynamoDB Batch Resolver将数据写入多个表。

以上是关于具有“自定义类型”属性的DynamoDB表的Graphql Mutation查询的主要内容,如果未能解决你的问题,请参考以下文章

尝试获取具有自定义类型的 DBus 属性时出现致命错误

核心数据中具有自定义类型的所有属性都必须是关系吗?

具有 CloudFormation 的 Amazon DynamoDB 属性类型

DynamoDB如何查询具有强一致性的非键属性?

推荐阅读整个表的方法(Lambda,DynamoDB / S3)

无法在 DynamoDB 中创建多个属性