dynamodb - 将向量添加到字段

dynamodb - add vector to field

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

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,
     .
     .
}

谢谢。

首先我猜想 "vector" 你指的是 DynamoDB data type NS(数字集)。 ADD 操作适用于集合和数字,但遗憾的是,在您的示例中并不像您期望的那样:

  • 如果您将一个数字与另一个数字相加,则它们会在数学上相加
  • 如果您将元素添加到集合中,它会被追加

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

您可以选择第二种方法,也可以在您的机器上进行计算,然后使用 SET 更新整个集合。