【问题标题】:using dynamodb SET to append to a string set使用 dynamodb SET 附加到字符串集
【发布时间】:2021-03-18 07:54:53
【问题描述】:

我查看了最近的帖子,但没有任何内容对我有用。我的 DynamoDB 表中有一个名为“friendRequests”的字符串集,我正在尝试向其附加一个元素。但是,当我尝试使用这些参数调用 db.updateItem 时,我不断收到很多错误。这是我当前的代码,错误在于 ExpressionAttributeValues,但我可能花了一个小时更改我的语法无济于事。

    var params = {
    TableName: "users",
    Key: { "username": { "S": addFriendInfo.friendUsername } },
    UpdateExpression: "SET friendRequests = list_append(friendRequests, :newFriend)",
    ExpressionAttributeValues: {
        ':newFriend': { "SS" : [addFriendInfo.username] }
    }
}

这是我上面的代码。 addFriendInfo.username /friendUsername 都是字符串。这目前给了我一个“无效的 UpdateExpression:运算符或函数的操作数类型不正确;运算符或函数:list_append,操作数类型:SS'。我已经尝试了很多东西。谁能指出我正确的方向来修复这个该死的语法?

【问题讨论】:

    标签: javascript amazon-dynamodb


    【解决方案1】:

    正如DynamoDB documentation 解释的那样,DynamoDB 有两种相似但不同的类型 - listset。列表是任何类型的项目的有序列表,而集合是相同类型项目的非空、非有序集合。您使用的“SS”类型是“字符串集”。这与“列表”不同,您不能在集合上使用list_append,正如错误消息告诉您的那样。

    要将元素添加到集合中(或创建一个新集合,如果它尚不存在),您可以使用ADD 操作,例如ADD friendRequests :newFriend

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      相关资源
      最近更新 更多