数组类型中的图QL和DynamoDb更新项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组类型中的图QL和DynamoDb更新项相关的知识,希望对你有一定的参考价值。

我有一个架构:

type Profile {
    id: ID
    email : String
    awards: [Award]
}

type Award {
    id: ID!
    title: String!
    description: String!
}

我需要创建一个功能来使用个人资料ID和奖励ID更新特定的奖励,我想修改奖励中的标题和描述。

答案

可以插入特定位置:

let i = AwardInput['position'];

创建更新表达式:

let expression = "set awards[" + i +"].title = :title, "
    expression = expression + "awards[" + i +"].description = :description, " 
    expression = expression + "awards[" + i +"].initialDate = :initialDate, " 
    expression = expression + "awards[" + i +"].updated_at = :updated_at "

更新表:

    docClient.update(
      {
        TableName: process.env.USER_TABLE,
        Key: { 'id': AwardInput.id, },
        UpdateExpression: expression,
        ExpressionAttributeValues: {
                                      ":title": AwardInput['title'],
                                      ":description": AwardInput['description'],
                                      ":initialDate": AwardInput['initialDate'],
                                      ":updated_at":  AwardInput['updated_at'] ,

                                   },
        ReturnValues: 'UPDATED_NEW',
      },

以上是关于数组类型中的图QL和DynamoDb更新项的主要内容,如果未能解决你的问题,请参考以下文章

如何附加到 dynamodb 中的列表/数组?

DynamoDB 流 和 AWS Lambda 触发器

基于String Array项,向下一个片段显示相同的项

片段中ListView的setOnItemClickListener

DynamoDB + Quarkus - 奇数类型转换

Vue拼接(将数组项移动到数组中的另一个位置)不更新DOM