仅当地图中有 N 个或更少项目时,dynamoDB 条件写入

dynamoDB conditional write only when there are N or less items in a map

我们正在 DynamoDB 中存储地图(不是我的设计选择)。所以,基本上一个键可以包含一个值列表。像 map[string][]someStruct.

这样的东西

如果给定键只有 N 个或更少的值,我们只能将一个值附加到给定键。例如,如果“key1”已经有3个值,我不能追加另一个值,但如果它少于3个值,我可以再追加一个值。

我查看了条件写入,但找不到对此有帮助的条件表达式。任何帮助是极大的赞赏。谢谢!

您需要在列表旁边存储列表中的记录数,也许像这样的方法可行:

  {
    "key1": {
      "list": [1,2,3,4],
      "listLength": 4
    }
  }

您需要确保列表和 listLength 保持同步。

或者,您可以获取该项目,检查长度,然后使用条件进行更新,以确保在您获取和更新操作之间它没有被更新。