ruby - 如何在dynamodb查询操作中使用通配符*?

标签 ruby amazon-dynamodb aws-sdk

我正在使用 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 是一个字符串

最佳答案

您可以使用 Scan API获取 DynamoDB 表中的所有项目。如果你只需要主键,你可以使用 ProjectionExpression="IdType"限制您发回的数据量。

db_client.scan({table_name: "my_table_name"})

关于ruby - 如何在dynamodb查询操作中使用通配符*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38708184/

相关文章:

ruby-on-rails - send_file/send_data 不发送文件下载

ruby-on-rails - 如何使用 Rails 2.1 中的 ExceptionNotifier 插件修复 'Unprocessed view path found' 错误?

ruby - 对数组中的特定对象进行排序

java - 如何使用 JAVA 从 Dynamo DB 获取列的 SUM

javascript - 使用 Jest 测试时,类型错误 : AWS. DynamoDB.DocumentClient 不是构造函数

html - rails : Wrap parameter coming from form in a nested hash

amazon-dynamodb - 使用 DynamoDB 的无服务器框架 : Lambda function work, 但数据尚未保存到 DynamoDB

java - 如果没有自定义编码(marshal)器或 @DynamoDBDocument 注释,则无法编码(marshal)类型类

javascript - 如何删除aws s3存储桶中具有相同键的多个对象

amazon-web-services - 如何使用 Javascript sdk 在 AWS Service Catalog 中添加或获取产品的启动路径