Home Articles

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

Asked
Viewed 1729 times
1

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


ID : PostID (Hash Key)

Location : LocationID (Range Key)

Tags: List of strings


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

例如,项目:


PostID:Guid

位置:someLocationString

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


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

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

1 Answer

  • 1

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

    Hash :标签

    Range :PostId#LocationId

    这样你就可以在Tag上查询并获得所有对 .

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

Related