amazon-web-services - dynamoDb 负载不适用于同时具有哈希键和范围键的表
问题描述
我有一个表,它同时具有 hashkey 和 range 键。该表当前为空,我正在尝试使用 load() 传递 hashkey 作为参数从表中获取值,但它没有返回任何内容。我既没有得到 NULL 也没有任何异常。只是什么都没有发生。
但是,如果我使用 query() 并至少使用查询表达式,我将得到列表并且它的大小为 0,这是预期的。
我无法理解第一个场景。发生了什么错误?如果表同时具有哈希键和范围键,或者我错过了一些重要的东西,我们是否不能使用 load(hashkey) ?
解决方案
如果我想有一个项目,你会得到错误。Load
正在寻找与您的主键完全匹配的特定项目,但hash+range
键是您的复合主键,而不仅仅是您的hash
键。hash
因此,当您拥有复合主键时,您不能简单地询问仅给出键的项目。可能有多个值,hash
但您正在尝试以load
单个项目为目标。你所能做的就是query
因为你已经检索了多个项目
| HashKey | RangeKey |
|:---------:|----------:|
| SomeHash1 | Range1 |
| SomeHash1 | Range2 |
| SomeHash1 | Range3 |
| SomeHash2 | Range1 |
你想要load
SomeHash1的图像。有 3 个项目,但load
用于检索具有主键的项目。
推荐阅读
- mercurial - 为什么在 Mercurial 的 Strip 上执行预输出挂钩?
- c# - 提示用户在 textbox-ASP.net 中填写多行数据?
- python - 将同步函数定义为 async 并等待它有什么好处吗?
- ubuntu-18.04 - xrdp 和用户的 Ubuntu 18.04 问题
- quickblox - 在 quickblox 上删除用户时出错
- python - 如何自动重新启动此代码?
- eloquent - 使用 Slim 框架在 Eloquent 中访问 $app 或 $request
- mqtt - Fiware MQTT IoT Agent:API Key 中需要有斜线
- wordpress - 如何修复文件和文件夹的 mac os 权限与我们的托管服务器不兼容
- r - 你知道为什么在尝试 pairw.anova 时 dims [product 0] 与 object [1] 的长度不匹配吗