javascript - 使用 dynamodb SET 附加到字符串集
问题描述
我查看了最近的帖子,但没有任何内容对我有用。我的 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'。我已经尝试了很多东西。谁能指出我正确的方向来修复这个该死的语法?
解决方案
正如DynamoDB 文档所解释的,DynamoDB 有两种相似但不同的类型 - list和set。列表是任何类型的项目的有序列表,而集合是相同类型项目的非空、非有序集合。您使用的“SS”类型是“字符串集”。这与“列表”不同,您不能list_append
在集合上使用,正如错误消息告诉您的那样。
要将元素添加到集合(或创建新集合,如果它尚不存在),您可以使用ADD
操作,例如ADD friendRequests :newFriend
.
推荐阅读
- java - 如何生成唯一的海洋坐标并将其显示在 Java 中的可视地图中
- python - 通过二进制列值重塑 Pandas DatafRames
- .net - 安装项目中的 WebView2 运行时
- styling - 如何为 igx-grid 中的选定行设置自定义背景颜色
- c# - 使用 libdotnet 读取 Rfid 标签
- gitlab - 如何显示 gitlab 片段的差异视图?
- html - Chrome 和 Safari 之间的网站看起来不同
- xmlhttprequest - 为什么我们在使用 XMLHttpRequest 时必须设置 responseType?
- php - 使用自定义方法的雄辩查询
- javascript - JavaScript 中的简单去抖动函数