我正在使用aws-ruby-sdk来访问dynamodb。我想使用查询操作并获取所有项目。所以我在expression_attribute_values中使用通配符*。它不起作用。但是,如果我指定一个特定值,它就可以工作。
我如何使用*?下面是我查询dynamodb的代码:
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是一个字符串
答案 0 :(得分:0)
您可以使用Scan API获取DynamoDB表中的所有项目。如果您只需要主键,则可以使用ProjectionExpression="IdType"
来限制发回的数据量。
db_client.scan({table_name: "my_table_name"})