DynamoDB 按地图列表中的字段查询

问题描述 投票:0回答:1

使用 Dynamodb 可以创建一个表达式来查询对象列表属性。例如,表中的 POLICY_HOLDERS 属性具有以下 JSON 结构

[ 
  {PID: 1, FIRST_NAME: "Bob", LAST_NAME: "Smith"},
  {PID: 2, FIRST_NAME: "Betty", LAST_NAME: "Johns"}
]

并且我认为以下内容可能有助于查找属性 POLICY_HOLDERS 在列表中具有 FIRST_NAME 等于“Betty”的对象的所有条目(使用 Java AWS SDK)

String filterExpressionString = "contains(POLICY_HOLDERS, :POLICY_HOLDER)";

expressionAttributeValues.put(":POLICY_HOLDER", 
    AttributeValue.builder()
       .m(Map.of("FIRST_NAME", AttributeValue.builder().s("Betty").build()))
    .build());

这是否可能,因为上面什么也没发现。

java amazon-web-services amazon-dynamodb dynamodb-queries
1个回答
0
投票

如果您想对地图列表执行

contains
,那么您必须传递整个地图,这对于您的用例来说是不可取的。

contains(mylist, {PID: 2, FIRST_NAME: "Betty", LAST_NAME: "Johns"})
© www.soinside.com 2019 - 2024. All rights reserved.