【问题标题】:Filtering by non-key field in DynamoDB (aws-cli)在 DynamoDB (aws-cli) 中按非键字段过滤
【发布时间】:2018-08-05 08:00:50
【问题描述】:

​我正在尝试通过 aws-cli 查询 DynamoDB 中的数字字段。 尽管我想检索 queriedField 等于 0 的所有用户,但它强制我将密钥 (userId) 设置为某个值。这是语法: ​

aws dynamodb query
--table-name TableName
--key-condition-expression "userId = :userid" 
--filter-expression "mapAttr.queriedField = :num"
--expression-attribute-values '{ ":userid": { "S": "<AccountID>" }, ":num" : { "N": "0" }}' 

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-cli


    【解决方案1】:

    为了执行此查询,您必须使用过滤器表达式scan 整个表。

    但是,如果这是针对仍在开发/设计中的内容,请考虑将“数字字段”设置为顶级属性。这将允许您创建一个带有“数字字段”哈希键的 GSI,并将 userId 属性投影到 GSI。或者,您可以使用Global Secondary Index Write Sharding for Selective Table Queries

    【讨论】:

    • 谢谢。对于其他为此苦苦挣扎的人,这是解决方案的 sn-p:aws dynamodb scan --table-name TableName --filter-expression "mapAttr. queriedField = :num" --expression-attribute-values '{ ":num" : { "N": "0" }}'
    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2011-01-18
    • 2020-12-07
    • 2015-12-24
    相关资源
    最近更新 更多