amazon-dynamodb - 使用 OR 条件使用分区键和排序键查询 DynamoDB
问题描述
我需要查询 dynamoDB 并获取所有符合特定条件的记录。要求是,我有一个表说 parent_child_table,它有 parent_id 和 child_id 作为两列,现在我需要查询具有特定输入 id 的表并获取所有记录。例如
现在如果我用 id 67899 查询数据库,我应该得到两条记录,即 12345 和 67899。
我试图使用以下方法:
- GetItemRequest itemRequest=new GetItemRequest().withTableName("PARENT_CHILD_TABLE").withKey(partitionKey.entrySet().iterator().next(), sortKey.entrySet().iterator().next());
但我没有得到 OR 运算符。
解决方案
DynamoDB 不能那样工作......
GetItemRequest() 只能返回一条记录。
Query() 可以返回多条记录,但前提是您使用的是复合主键(分区键+排序键)并且只能在单个分区内查询...所以要返回的所有记录必须具有相同的分区键.
Scan() 可以从任何分区返回多条记录,但它始终扫描整个表。经常使用扫描是一个坏主意。
在不了解更多信息的情况下,很难提供指导,但请考虑如下模式:
partition key sort key
12345 12345
12345 12345#67899
12345 12345#67899#97765
可能在排序键中添加某种级别指示器或仅作为属性。
推荐阅读
- huawei-mobile-services - 应用被杀时如何接收华为推送?
- bot-framework-composer - 在 Bot Framework Composer 中更改 Power Virtual Agent 全局变量
- javascript - 验证后如何重定向页面
- javascript - 在本地存储的主页上显示数据
- php - php-cs-fixer - 规范化数组声明
- python - 按组将每一行减少前一行的百分比
- python-3.x - 在 pyspark sql 的连接中重复使用相同的数据框视图
- ios - 从 xib 与从单个 vc 故事板创建 UIViewController 实例
- sql - 是否可以在 presto sql 中执行顺序行计算?
- python - (lat,long)坐标的数据清洗