我正在使用带有boto的dynamoDB,并且在我的表的设计/查询中遇到了一些问题。
我希望我的数据看起来像
+---------------------------------------+
hash_key account_id mykey
-----------------------------------------
1 12345 myvalue1
2 12345 myvalue2
3 12345 myvalue3
4 123456 myvalue4
+---------------------------------------+
然后检索帐户12345的所有数据。查看boto文档,我总是需要hash_key可用。我知道如何查询这个标准的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
由于我想要使用帐号#12345获取所有条目,无论range_key如何,我都需要查询而不是 get_item
答案 0 :(得分: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-when-to-use