Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用非散列键字段查询dynamoDB(使用boto/python)_Python_Amazon Web Services_Boto_Amazon Dynamodb - Fatal编程技术网

使用非散列键字段查询dynamoDB(使用boto/python)

使用非散列键字段查询dynamoDB(使用boto/python),python,amazon-web-services,boto,amazon-dynamodb,Python,Amazon Web Services,Boto,Amazon Dynamodb,我将dynamoDB与boto一起使用,在表的设计/查询中遇到了一些问题 我希望我的数据看起来像 +---------------------------------------+ hash_key account_id mykey ----------------------------------------- 1 12345 myvalue1 2 12345 myvalue2 3 123

我将dynamoDB与boto一起使用,在表的设计/查询中遇到了一些问题

我希望我的数据看起来像

+---------------------------------------+
hash_key    account_id    mykey
-----------------------------------------
1           12345         myvalue1
2           12345         myvalue2
3           12345         myvalue3
4           123456        myvalue4
+---------------------------------------+
然后检索帐户12345的所有数据。查看boto文档,我总是需要hash_键可用。我知道如何查询这个标准SQL/MongoDB,但我找不到boto的解决方案。我想这是可能的?谢谢

编辑:这似乎有效

+---------------------------------------+
hash_key    range_key    mykey
-----------------------------------------
12345       12568        myvalue1
12345       53890        myvalue2
12345       12322        myvalue3
123456      23432        myvalue4
+---------------------------------------+

> res = table.query(hash_key='12345')
> for item in res:
>    print i

因为我想抓取所有带有account#12345的条目,而不考虑范围键,所以我需要查询而不是获取项目我会使用account\u id作为
散列键
以及一些
范围键
来区分它们

在DynamoDB中,主键由(
hash_键
range_键
range_键
组成,是可选的。这个元组必须是唯一的。请注意,您需要整个元组才能使用
get\u item
访问给定元素

拥有“自动增量”哈希键是SQL世界的一个坏习惯


如果您想了解更多关于这个主题的信息,我在dynamodb mapper文档中写了一些关于建模数据的背景知识:

这是我最初想要的,但是哈希键必须是唯一的!是的,使用
range\u键来区分它们。如果你对这个模型有更多的了解,我可以试着推荐一个。我明白了-刚刚测试过,事实上,如果你添加range\u键,dynamoDB允许使用相同的hash\u键。我猜我给range_key的值是不相关的(只要它是唯一的),因为我只使用它来区分条目?这些数据实际上是定期插入的GPS点。谢谢不客气。我更新了我的答案以反映您的评论。请注意,您需要整个(
hash_key
range_key
)元组来访问随机元素。顺便说一句,如果这解决了你的问题,你可以考虑接受这个答案:)还添加了一个编辑——看起来像“代码>查询<代码> >,但我不确定这里的性能含义。当你这样查询时,你是否体验过一个“未知的Frter Type Trror”?