有没有一种方法可以根据不是hashkey的字段来获取项目?
例
我的表格用户: id (HashKey), name, email
我想检索电子邮件为“ [email protected]”的用户
如何做到这一点?
我尝试使用boto:
user = users.get_item(email='[email protected]')
我收到以下错误:
'The provided key element does not match the schema'
要查询不是哈希键的字段,您需要使用全局二级索引(GSI)。请查看此AWS Post,以获取有关GSI的更多详细信息。
2015年2月更新:现在可以将GSI添加到现有表中。有关更多详细信息,请参阅Amazon Docs。
遗憾的是,您无法将GSI添加到现有DynamoDB表中,因此,如果您确实需要查询该表,则需要创建一个新表并移植数据。
问:如何为DynamoDB表创建全局二级索引?
与表关联的所有GSI必须在表创建时指定。目前,在创建表格后无法添加GSI。有关创建表及其索引的详细步骤,请参见此处。每个表最多可以创建5个全局二级索引。
如果您不想移植数据,则可以考虑使用电子邮件作为哈希键和父记录的哈希表创建第二个DynamoDB表,以用作对主数据表的查找,但是您可以想象这不是完全是一个最佳解决方案,并且它自身也很难与主表保持同步。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句