dynamodb - 向场添加矢量

时间:2016-04-28 20:21:44

标签: python amazon-dynamodb boto boto3

在dynamodb中的一个表中有一个包含长数字向量的字段。我想用另一个数字向量对该字段执行向量加法。这个操作会有效吗? (我使用boto和python)

UpdateExpression = "ADD my_vector_field :v",
ExpressionAttributeValues = {
    ':v': [3, 8, 4, 5, ...]
}

或者,我会别无选择,只能这样做:

UpdateExpression = "ADD my_vector_field[0], my_vector_field[1],... :v0, :v1,...",
ExpressionAttributeValues = {
    ':v0': 3,
    ':v1': 8,
     .
     .
}

感谢。

1 个答案:

答案 0 :(得分:0)

首先,我想通过“vector”你可以引用DynamoDB data type NS(数字集)。 ADD操作正在处理集合和数字,但遗憾的是,在您的示例中并不像您期望的那样:

  • 如果您将数字添加到另一个数字,则会以数学方式添加
  • 如果您向集合添加元素,则会附加

无法将集添加到集合中。在您的情况下,您可以添加数据类型为N到NS或N的项目,但不包括NS到NS。

您可以选择第二种方法或在计算机上进行计算,然后使用SET更新整个设置。