如何附加到 dynamodb 中的列表/数组?
Posted
技术标签:
【中文标题】如何附加到 dynamodb 中的列表/数组?【英文标题】:How to append to a list/array in dynamodb? 【发布时间】:2019-11-27 20:52:44 【问题描述】:对于我的 DynamoDB 表中的“id”(例如e5eb02ae-04d5-4331-91e6-11efaaf12ea5
),我有一个名为 Weather 的列
['sun', 'rain', 'snow', etc...]
我需要在 ['hail'] 到达时更新天气。现在,我下面的 update() 替换了整个数组。我要做的就是在该列表的末尾附加“冰雹”。
const updateinfo =
id: "e5eb02ae-04d5-4331-91e6-11efaaf12ea5",
Weather: "hail"
try
await API.graphql(graphqlOperation (UpdateInfo, input: updateinfo )) //mutation
console.log('success')
catch (err)
console.log(err)
我该怎么做,确保我的列表只是附加了信息,而不必 get() 并下拉 ['sun', 'rain', 'snow', etc...],然后添加“冰雹”并创建一个新数组?然后是 GetInfo() 和 UpdateInfo(),这是双倍的努力/电话/费用。
【问题讨论】:
【参考方案1】:我在另一个问题中发布了对类似问题的回复。答案是使用名为 list_append
的 DynamoDB 函数。
list_append(操作数,操作数)
这个函数的计算结果是一个添加了新元素的列表。您可以通过颠倒操作数的顺序将新元素附加到列表的开头或结尾。
您可以在此处查看有关如何使用 AWS AppSync 和 AWS Amplify 执行此操作的详细回复。
https://***.com/a/57088993/11681626
【讨论】:
嗨内森。我没有使用“表达式”或“表达式值”,因为我没有直接与 DynamoDB 交互。我正在使用 AWS AppSync,并且我有一个名为 UpdateInfo 的突变,它由 AWS 自动生成以供使用。这种情况下如何使用list_append()? 您似乎在使用 AWS Amplify 与 AWS AppSync 进行交互?从您的代码的外观来看,这似乎是真的。您可以阅读有关使用 AWS Amplify 项目 here 添加自定义解析器来执行此操作的信息。这是代码生成工具当前不支持的高级用例。您将需要手动添加一些文件,但这绝对是可行的。如果您需要更多帮助,我们很乐意为您提供帮助。 我更新了 the post with your original question 以包含使用 AWS Amplify 的详细示例。希望这会有所帮助!以上是关于如何附加到 dynamodb 中的列表/数组?的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS AppSync 将项目附加到 DynamoDB