【问题标题】:How to get list of all items in a dynamo Table using aws cli如何使用 aws cli 获取 dynamodb 表中所有项目的列表
【发布时间】:2022-02-03 02:59:59
【问题描述】:

我需要使用 AWS CLI 在名为 JKOwner 的某个 Dynamodb 表中获取 Platform 键下所有项目的列表。这是我目前正在尝试测试的内容:

aws dynamodb get-item --table-name JKOwner --key '{"Platform": {"S": "GOVTEST"}}'

使用这个 cli 命令,我可以在 Platform 键下获取项目 GOVTEST。但是,如果我需要获取 GOVTEST 之外的所有项目以便将其存储在变量中,我应该使用什么命令?有大约 200 多个平台值我需要进入列表。到目前为止,该项目的详细信息并不重要。提前感谢您的帮助。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb key command-line-interface


    【解决方案1】:

    你试过了吗?

    aws dynamodb query 
      --table-name JKOwner
      --key-condition-expression "Platform = :v1" 
      --expression-attribute-values "{ \":v1\" : { \"S\" : \"GOVTEST\" } }" 
    

    【讨论】:

    • 对不起,我实际上已经从我研究过的其他网站上看到了这个,我认为这不能解决我的问题。这是什么意思? --key-condition-expression "Platform = :v1" 我实际上并不熟悉这个。此外,我必须获取 JKOwner 表下的所有项目(包括 GOVTEST 在内的 200 多个项目)。
    • 这意味着获取所有行的键名为Platform 等于 GOVTEST。如果表的Platform 列不是键的一部分(分区、排序键或任何索引),则必须使用scan 而不是query
    【解决方案2】:

    如果您确实需要获取所有项目,则应使用 Scan 操作。然后,您使用过滤器表达式省略其中平台 = GOVTEST 项目的项目。

    如果您想让自己轻松一点,可以使用 PartiQL for DynamoDB 并执行以下操作:

    SELECT * FROM JKOwner WHERE Platform <> 'GOVTEST'
    

    有关在命令行上执行 PartiQL 的示例,look on the PartiQL for DynamoDB tab on this page 或执行以下操作:

    aws dynamodb execute-statement --statement "SELECT * FROM Music   \
                                                WHERE Artist='Acme Band' AND SongTitle='Happy Day'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-19
      • 2019-08-08
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多