繁体   English   中英

AWS DynamoDB 扫描 | 扫描地图中是否存在键数组

[英]AWS DynamoDB Scan | Scan if array of keys exists in a map

我正在使用 DynamoDB 来存储用户信息。 每个用户都有一个以爱好为键,以一些文本为值的地图,例如:

{'fishing': 'Its fun!', 'running': 'Its healthy!'}

现在,我想为有特定爱好的用户扫描我的表:

['dancing', 'fishing', 'cooking']

问题:是否可以scan DynamoDB 表以检查映射中的键是否存在?

如果 hobbies 属性是 StringSet,那么您可以进行如下扫描:

    {
        "TableName": "tbl_name",
        "FilterExpression": "( contains(hobbies, :hobby1) ) OR ( contains(hobbies, :hobby2) )  )",
        "ExpressionAttributeValues": {
            ":hobby1": {
                "S": "dancing"
            },
            ":hobby2": {
                "S": "fishing"
            },

        }
    }

是的,可以扫描 DynamoDB 表以检查映射中的键是否存在。

假设您在 dynamoDB 中的条目如下所示:

{
   "userId" : 123,
   "hobbyMap" : {
      "fishing" : "Its fun!",
      "running" : "Its healthy!"
   }
}

您可以编写的过滤器表达式是:

FilterExpression : "attribute_exists(hobbyMap.dancing) OR attribute_exists(hobbyMap.fishing) OR attribute_exists(hobbyMap.cooking)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM