首页 > 解决方案 > 有什么方法可以在 DynamoDB 中初始化一个数字列表的增量?

问题描述

例如像这样:

aws dynamodb update-item \
    --table-name table \
    --key '{"PK":{"S":"Poll#5f4c556c-41e8-44a6-81e3-590b974949e5"},"SK":{"S":"Metric#Time#time=2021-08-29T16:59:59.999Z"}}' \
    --update-expression "SET optionVotes = if_not_exists(optionVotes, :initialVotes) ADD optionVotes[1] :increment " \
    --expression-attribute-values '{":initialVotes": {"L": [{"N": "0"}, {"N": "0"}]}, ":increment": {"N": "1"}}' \
    --return-values ALL_NEW

这种尝试实际上返回An error occurred (ValidationException) when calling the UpdateItem operation: Invalid UpdateExpression: Two document paths overlap with each other; must remove or rewrite one of these paths; path one: [optionVotes], path two: [optionVotes, [1]]

实际上下文是投票投票的投票{optionVotes: [0, 1]}意味着选项 1 的投票数为 0 票,选项 2 的投票数为 1。我正在评估每次投票移动到单个属性(例如{v0: 0, v1: 1}),因此增量将根据情况创建或设置它,但我觉得列表是更合适的表示。

标签: amazon-dynamodb

解决方案


推荐阅读