如何在 DynamoDB 中设置表以便能够查询字符串 set/List?
How to setup Tables in DynamoDB to be able to query a string set/List?
目前,我在 DynamoDB 中有一个 table 具有以下架构:
ID : PostID(哈希键)
位置:LocationID(范围键)
标签:字符串列表
现在我希望能够查询标签列表和 table 中的每个项目,并找出哪些帖子具有这些标签。我怎么做?阅读 DynamoDB 文档,我认为我必须设置另一个 table,因为查询无法搜索 List/String 集中的特定字符串,但我无法弄清楚如何构造 table。
例如,项目:
帖子ID:Guid
位置:someLocationString
标签:["Queen"、"Royalty"、"England"]
现在我想查询具有名为 "Queen" 的标签的项目,我希望结果是一组具有该标签的项目。 (帖子 ID + 位置)
最佳结构是什么?添加新标签时如何维护 table?
如果我正确理解了要求,您可以使用 table:
哈希:标签
范围:PostId#LocationId
这样你就可以在 Tag 上查询并获取所有对。
保持两个 table 同步并不是最佳选择,但这完全取决于原子性对您有多重要。也许看看 DynamoDB Transactions,或者做一些 "CAS" 插入。
目前,我在 DynamoDB 中有一个 table 具有以下架构:
ID : PostID(哈希键)
位置:LocationID(范围键)
标签:字符串列表
现在我希望能够查询标签列表和 table 中的每个项目,并找出哪些帖子具有这些标签。我怎么做?阅读 DynamoDB 文档,我认为我必须设置另一个 table,因为查询无法搜索 List/String 集中的特定字符串,但我无法弄清楚如何构造 table。
例如,项目:
帖子ID:Guid
位置:someLocationString
标签:["Queen"、"Royalty"、"England"]
现在我想查询具有名为 "Queen" 的标签的项目,我希望结果是一组具有该标签的项目。 (帖子 ID + 位置)
最佳结构是什么?添加新标签时如何维护 table?
如果我正确理解了要求,您可以使用 table:
哈希:标签
范围:PostId#LocationId
这样你就可以在 Tag 上查询并获取所有对。
保持两个 table 同步并不是最佳选择,但这完全取决于原子性对您有多重要。也许看看 DynamoDB Transactions,或者做一些 "CAS" 插入。