DynamoDB 使用轨道在数组中包含值



我正在使用rails研究DynamoDB,我有一个疑问。我无法在网上找到解决方案,所以如果你能解决它,我将不胜感激。

问题是如何在保存在表上的数组中找到值,例如:

我在my_table中有很多数据,其中有称为"数字"的字段,其数组如下:

[1,2,3,4]
[3,4,5,6]
[1,3,4,7]
[4,7,8,10]
[8,9,12,14]
[12,14,16,20]

所以,我想选择所有包含数字 1,3,4 的条目。在本例中,有四个结果。

所以,我的代码是

result = dynamodb.scan({
    table_name: "my_table",
    select: "ALL_ATTRIBUTES",
    attributes_to_get: ["numbers"],
    scan_filter: {
        "numbers" => {
            attribute_value_list: [1,3,4],
            comparison_operator: "CONTAINS"
        }
    }
})

但是我收到此错误:一个或多个参数值无效:包含比较运算符的参数数量无效

如何使用发电机数据库执行此操作?

多谢

试试这个,让我知道它是否有效,我从经验中知道 DynamoDB 的过滤非常痛苦。

result = dynamodb.scan(
  table_name: 'my_table',
  expression_attribute_values: { 
    ':one' => 1,
    ':two' => 2,
    ':three' => 3,
    ':four' => 4
  },
  filter_expression: 'contains(numbers, :one) OR contains(numbers, :two) OR contains(numbers, :three) OR contains(numbers, :four)'
)

我目前想不出更简单的方法,您链接的方法被标记为已弃用,相反,您应该使用 expression_attribute_valuesfilter_expression .

相关内容

  • 没有找到相关文章

最新更新