如何在DynamoDB中设置表以便能够查询字符串集/列表?

时间:2015-05-31 15:53:37

标签: amazon-dynamodb nosql

目前,我在DynamoDB中有一个使用此架构的表:

ID:PostID(哈希键)

位置:LocationID(范围键)

标签:字符串列表

现在,我希望能够查询标签列表以及表格中的每个项目,并查找哪些帖子包含这些标签。我怎么做?阅读DynamoDB文档,我认为我将不得不设置另一个表,因为Query无法搜索List / String Set中的特定字符串,但我无法弄清楚如何构造表。

例如,item:

PostID:Guid

位置:someLocationString

标签:[“女王”,“皇室”,“英格兰”]

现在我想查询具有名为“Queen”的标签的项目,并且我希望结果是一组具有标记的项目。 (PostID +位置)

最佳结构是什么?在添加新标签时如何维护表格?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这些要求,您可以使用表格:

哈希:标记

范围:PostId#LocationId

通过这种方式,您可以查询Tag并获取所有对。

保持两个表同步不是最佳的,但这一切都取决于原子性对您来说有多重要。也许看看DynamoDB Transactions,或做一些“CAS”插页。