当前位置: 首页 > 知识库问答 >
问题:

DynamodDB:如何更新排序键?

史磊
2023-03-14

该表有两个键:filename(分区键)和eventTime(排序键)。我想更新某些filenameeventTime。尝试了put_item()update_item()发送相同的filename与neweventTime但这些函数添加了一个新项目而不是更新。

我应该用什么来达到这个目的?

共有3个答案

洪华皓
2023-03-14

在DynamoDB中,可以对现有项执行条件更新(如果不存在,请插入新的属性名称-值对,如果现有的名称-值对具有某些预期的属性值,请替换该对)。请参阅此处的官方文件:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html

此外,您可以考虑以正确的方式使用排序键。请参考此处建议的留档:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort-keys.html

章远航
2023-03-14

根据aws文档:

不能使用更新项来更新任何主键属性。相反,您需要删除该项目,然后使用PutItem创建具有新属性的新项目。

贺宝
2023-03-14

您不能。由于它是索引的一部分,因此该字段受到保护。您应该做什么来删除该项目并使用新的排序键再次添加它。

看https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValueUpdate.html

 类似资料:
  • 问题内容: 我有一张像下面的桌子, 我想使用“名称”列按字母顺序重新排序,并使用此新顺序重置ID(自动递增),以得到以下结果 问题 :如何使用MYSQL执行此操作? 问题答案: 请问您为什么要这么做? 如果有人修改了任何名称值或插入了新行,则会使您的订购方案混乱。试图以表的其他位置(名称列)已经可用的PK顺序存储一些含义似乎是多余的,因此是个坏主意。 更好的解决方案是不用担心ID列的值,而在应用程

  • 问题内容: 如果我有列表,如何以任意方式重新排序商品? 编辑:我不想洗牌。我想以预定义的方式对它们进行重新排序。(例如,我知道旧列表中的第3个元素应成为新列表中的第一个元素) 问题答案: 你可以这样

  • 我有一个拥有数千个条目的Java ObservableList,它支持JavaFX TableView,每秒接收数百个更新。 ObservableList由ArrayList支持。可以对列表应用任意排序顺序。更新可能会改变列表中单个实体的排序顺序。如果我试图在每次更新后预制排序,我会有性能问题,所以目前我有一个后台任务每秒钟执行一次排序。不过,如果可能的话,我想尝试实时排序。

  • 看看下面的伪C++代码: 有两个函数带有参数。参数计数大于三,但为了简单起见,例如设为三。 -它是模板函数,具有与相同的参数计数,并且参数具有与相同的类型。但是(!)参数上的顺序可以(或不能)不同。例如: 那么如何在中重新排序参数,以便使用正确的参数序列调用呢?

  • 问题内容: df =DataFrame({‘a’:[1,2,3,4],’b’:[2,4,6,8]}) >>> df[‘x’]=df.a + df.b >>> df[‘y’]=df.a - df.b >>> df a b x y 0 1 2 3 -1 1 2 4 6 -2 2 3 6 9 -3 3 4 8 12 -4 现在,我想重新排列列顺序,按如下方式使“ x”,“ y”列成为第一列和第二列: 但

  • 问题内容: 我想排序CopyOnWriteArrayList。但是当我尝试运行以下代码时 它在扔unsorted operation exception。 提前致谢。 问题答案: 但是CopyOnWriteArrayList的ListIterator不支持remove,set或add方法。 解决方法: