在AWS Console上使用DynamoDB过滤器获取嵌套属性

8 amazon-web-services amazon-dynamodb

我在DDB中有一个带有各种嵌套属性的地图。地图本身称为“状态”,并在“ prop”中具有嵌套属性。

我想过滤道具中“包含”(在下拉列表中)X的所有结果。

不幸的是,我尝试了多种方法,例如:

state.prop "CONTAINS" X
state.#prop "CONTAINS" X
Run Code Online (Sandbox Code Playgroud)

除了主键外,我似乎无法过滤其他任何内容。任何类型的嵌套过滤器,或任何其他列上的过滤器都将返回0个结果(如果确实存在某些结果)。

大多数示例都是基于代码或CLI的,而不是DDB UI。

请有人可以给我提供一个示例,该示例通过AWS控制台中的DDB在地图上进行过滤。

非常感谢。

Roh*_*num 1

我认为最简洁的方法是将映射内的值分离到根文档上的一个字段(分区和排序键旁边),然后创建全局二级索引(GSI)或本地二级索引(LSI)取决于您想如何使用它。然后,您可以使用查询操作来搜索文档的索引,并从那里访问代码中的其余地图属性(在本例中,您可以将该字段命名为stateProof)。

这个线程详细介绍了在 Scan 操作中使用 FilterExpression 的能力,但是我认为如果 DDB 中有很多文档,这会相当昂贵,但它很可能比添加新索引和更新现有 DDB 文档格式容易得多。