首页 > 解决方案 > 如何在python中动态过滤来自dynamoDB的嵌套地图项列表

问题描述

如何在 python 中动态过滤来自 dynamoDB 的嵌套地图项列表。

下面是 Json 文档。

"Items": [
{
  "shows": [
    "first",
    "second"
  ],
  "area": [
    {
      "areaCode": "ID1",
      "street": [
        "pvr1"
      ]
    }
  ],
 }
]

如何根据 'areaCode' = "ID1" 过滤记录我在指定索引时获取记录,但由于列表可能包含更多项目,因此无法对索引值进行硬编码。有没有办法动态地做到这一点?

response = table.scan(
     FilterExpression = Attr("area[0].areaCode").contains("ID1")) 

标签: pythonamazon-dynamodbboto3

解决方案


DynamoDB 无法对您所描述的复杂属性进行通配符搜索。如果要按区号属性进行搜索或过滤,则需要将其移动到属性中或将其合并到主键中。

DDB 针对复杂属性提供的搜索功能是有限的。


推荐阅读