我正在使用aws-ruby sdk访问dynamodb。我想使用查询操作并获取所有项目。所以我在expression_attribute_values中使用通配符*。它不起作用。但是,如果我指定了一个特定的值,它就会起作用。
我如何使用*?下面是我的代码查询发电机数据库:
db_client.query({
table_name: "my_table_name",
key_condition_expression: "#idtype = :idType",
expression_attribute_names: {
"#idtype" => "IdType"
},
expression_attribute_values: {
":idType" => "*",
},
})
我指定*也是因为我想要所有的值。我想要的最终结果只是主键IdType中的唯一值,但似乎没有办法在dynamodb中具有唯一约束(据我所知),所以我正在获取所有值,并将使用我自己的代码从结果中获得唯一值。
如有任何帮助,我们将不胜感激。
PS:主分区密钥-IdType是字符串
您可以使用扫描API来获取DynamoDB表中的所有项。如果您只需要主键,则可以使用ProjectionExpression="IdType"
来限制发送回的数据量。
db_client.scan({table_name: "my_table_name"})