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

L-R*_*L-R 2 python boto amazon-web-services amazon-dynamodb

我正在使用带有boto的dynamoDB,并且在我的表的设计/查询中遇到了一些问题.

我希望我的数据看起来像

+---------------------------------------+
hash_key    account_id    mykey
-----------------------------------------
1           12345         myvalue1
2           12345         myvalue2
3           12345         myvalue3
4           123456        myvalue4
+---------------------------------------+
Run Code Online (Sandbox Code Playgroud)

然后检索帐户12345的所有数据.查看boto文档,我总是需要hash_key可用.我知道如何查询这个标准的SQL/MongoDB,但我找不到boto的解决方案.我认为这是可能的吗?谢谢!

编辑:这似乎工作

+---------------------------------------+
hash_key    range_key    mykey
-----------------------------------------
12345       12568        myvalue1
12345       53890        myvalue2
12345       12322        myvalue3
123456      23432        myvalue4
+---------------------------------------+
Run Code Online (Sandbox Code Playgroud)

其次是

> res = table.query(hash_key='12345')
> for item in res:
>    print i
Run Code Online (Sandbox Code Playgroud)

由于我想要使用帐户#12345获取所有条目,无论range_key如何,我都需要查询而不是get_item

yad*_*taf 5

我会使用account_id hash_key和一些range_key来区分它们.

在DynamoDB中,主键由(hash_key,range_key)range_key是可选的.这个元组必须是唯一的.请注意,您将需要整个元组来访问给定元素get_item.

拥有'auto_increment' hash_key是SQL世界的坏习惯.

如果你想更多地了解这个主题,我在dynamodb-mapper文档中写了一些关于建模数据的背景知识:http://dynamodb-mapper.readthedocs.org/en/latest/api/model.html#auto-increment -当使用的