数组中的Dynamodb扫描对象属性

时间:2018-10-31 06:19:09

标签: amazon-dynamodb

如何过滤数组中的嵌套属性?例如,使用以下架构,如何扫描location_id为“ xxxx”的位置?

{
    "locations": [
        {
            "location_id": "xxxx",
            "location_name": "location x"
        },
        {
            "location_id": "yyyyy",
            "location_name": "location y"
        }
    ]

}

1 个答案:

答案 0 :(得分:0)

不幸的是,Dynamo不支持其中路径嵌套在集合中的条件表达式contains()

例如如果位置不是一组地图,但不能执行contains(locations, xxxx)contains(locations.location_id, xxxx),它将能够支持locations. contains(location_id, xxxx

但是,在这种情况下,您使用的是过滤器表达式,因此必须理解,在从表中获取数据并向您收费之后, 之后应用了过滤器表达式收集数据。这意味着使用它们的唯一真正优势是您可以传输(通常免费)更少的数据,并在客户端中获取更少的数据。

这意味着对于您想要的“复杂”过滤器,您自己过滤返回的结果具有成本效益。