代码之家  ›  专栏  ›  技术社区  ›  Costa Michailidis

如何在DynamoDB中抓取具有特定值的项目?

  •  0
  • Costa Michailidis  · 技术社区  · 7 年前

    为了便于演示,让我们说这些标签只是字符串……“高”、“短”、“喜欢棒球”等等。。。

    我如何设置数据,以便快速查询具有特定标签的所有人,比如所有“高个子”的人?

    我可以避免扫描桌子吗?我可以避免创建多个表吗?这实际上是关系数据结构更好的用例吗?如果我在飞行中提出新标签怎么办?关系在这种情况下不起作用。

    更新:

    People Tags Mappings ====== ==== ======== John firefighter John > firefighter Sally young John > young Joe owner Sally > owner Anne staff Anne > owner Chris zebra-lover Chris > zebra-lover Ben 42 Ben > zebra-lover

    1 回复  |  直到 7 年前
        1
  •  1
  •   Dunedan    7 年前

    通常,为了避免在查询非主键的属性时进行扫描,可以使用 global secondary keys 。对于您的情况,这可能不太管用,因为您可能希望能够同时使用多个标签标记人。

    通过这种方式,您可以在标记表中查询给定的标记,以获取您正在搜索的所有人的主键,然后再对people表进行另一次查询,以获取他们的详细信息。

    这也适用于新标记,因为它们只意味着标记表中的其他项。