我有很多对象具有唯一的ID。每个对象都具有与之相关联的,像这样几个标签:dynamodb创建字符串集
123: ['a', 'hello']
456: ['dsajdaskldjs']
789: (no labels associated yet)
我不打算以存储DynamoDB的所有对象,只有这些组的标签。因此,这将是有意义的添加标签这样的:
- 找到(ID = needed_id)
- 如果有的话,它有一个名为
label_set
集,添加一个标签,将其设置 纪录
- 如果有这样的ID没有记录,或现有的记录没有属性命名为
label_set
,创建一个记录和属性,并初始化了一组由标签
的,如果我使用的属性一组数字,我只能用ADD
操作的UPDATE
命令。这个命令正是我所描述的。然而,这不与琴弦组工作:
如果没有项目指定的主键相匹配:
ADD-创建具有该属性值供给主键和号码(或一组号码)项。对于字符串类型无效。
所以必须使用一个PUT
操作与Expected
设置为{"label_set":{"Exists":false}}
,随后(如果它失败)通过ADD
操作。这是两个操作,它有点不好(因为你每次操作付费,这个成本将比它们高出2倍)。
这个限制对我来说似乎很奇怪。为什么用数字设置的东西不适用于字符串集?也许我做错了什么。
使用像(123, 'a'), (123, 'hello')
而不是每个对象的一个记录了一组多条记录是不是一个解决方案:我想get
所有值从集合一次,没有任何扫描。