gpt4 book ai didi

indexing - 搜索 DynamoDB 表上的数组项

转载 作者:行者123 更新时间:2023-12-02 20:17:15 24 4
gpt4 key购买 nike

我需要了解如何搜索作为数组一部分的 DynamoDB 的属性。

因此,在对表进行非规范化时,假设一个人拥有许多电子邮件地址。我会在 person 表中创建一个数组来存储电子邮件地址。

现在,由于电子邮件地址不是排序键的一部分,并且我是否需要对电子邮件地址执行搜索以查找人员记录。我需要对电子邮件属性建立索引。

  1. 我可以在电子邮件地址上创建索引吗?该索引与人员记录是一对多关系,按照我在 DynamoDB 中的理解,它存储为数组。
  2. 该二级索引是全局索引还是本地索引?假设我有数十亿条人员记录?
  3. 如果我可以将其创建为 LSI 或 GS​​I,请解释各自的优缺点。

非常感谢!

最佳答案

从一开始就应该正确理解术语。 DynamoDB supported data types

标量 - 字符串、数字、二进制、 bool 值

文档 - 列表、 map

集合 - 字符串集、数字集、二进制集

我认为您建议您有一个包含电子邮件列表的属性。该属性可能如下所示

Emails: ["one@email.com", "two@email.com", "three@email.com"]

有几个关于描述的关键属性的相关点 here 。首先,键必须是顶级属性(它们不能嵌套在 JSON 文档中)。其次,它们必须是标量类型(即字符串、数字或二进制)。

由于您的电子邮件列表不是标量类型,因此您不能在键或索引中使用它。

鉴于此架构,您必须执行 scan ,您可以在其中设置 FilterExpression在您的电子邮件属性上使用 CONTAINS运算符。

关于indexing - 搜索 DynamoDB 表上的数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com