我有很多對象具有唯一的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
所有值從集合一次,沒有任何掃描。