在AWS控制台上使用DynamoDB过滤器来嵌套属性

时间:2018-04-20 12:35:07

标签: amazon-web-services amazon-dynamodb

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

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

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

state.prop "CONTAINS" X
state.#prop "CONTAINS" X

我似乎无法过滤除主键以外的任何内容。任何类型的嵌套过滤器或任何其他列上的过滤器都会返回0结果(当某些结果肯定存在时)。

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

请有人向我提供在AWS控制台内通过地图过滤DDB的示例。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是将映射内的值分成根文档上的字段(分区和排序键旁边),然后创建全局二级索引(GSI)或本地二级索引(LSI),具体取决于您要使用的方式。然后,您可以使用查询操作在文档的索引中搜索并从那里访问代码中的其余地图属性(在这种情况下,您可以将字段命名为stateProof)。

this线程详细说明了在Scan操作中使用FilterExpression的功能,但是,我认为如果DDB中有很多文档,这会非常昂贵,但是它可能比添加新索引容易得多并更新现有的DDB文档格式。