gpt4 book ai didi

java - Dynamodb 如何在项目中的列表元素中执行更新?

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:40 24 4
gpt4 key购买 nike

我将数据存储在列表元素中。该列表属性由多个字段组成,例如年份和名称。有什么方法可以像关系数据库中那样只删除年份为 2018 年的行吗?

数据以这种方式存储,其中 ID 为主键,其他一些字段如密码、城市等。以下是数据如何按季度存储。

{
"q1risk" : "0",
"q1targets" : [ ]
}
UpdateItem succeeded:
{
"q2risk" : "100.0",
"q2targets" : [ {
"level" : "Basic",
"year" : "2017",
"name" : "1",
"completed" : "0",
"category" : "US"
}, {
"level" : "Basic",
"year" : "2017",
"name" : "2",
"completed" : "0",
"category" : "US"
}, {
"level" : "Basic",
"year" : "2018",
"name" : "3",
"completed" : "0",
"category" : "US"
} ]
}

最佳答案

取自 this answer to a similar question ,根据DynamoDB UpdateExpression documentation ,您可以使用 REMOVE ListAttribute[index] 从列表中删除单个元素。

但是,似乎没有一种方法可以根据条件有条件地删除列表元素。

最小化读/写吞吐量的最佳选择是:

  1. 使用 CONTAINS 过滤条件和列表属性上的投影表达式查询项目。
  2. 如果找到该项目,则它至少包含一个您要删除的元素,因此请找到您要删除的元素的索引。
  3. REMOVE 与索引一起使用可从项目的列表属性中删除这些元素。

关于java - Dynamodb 如何在项目中的列表元素中执行更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com