使用 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());
这是否可能,因为上面什么也没发现。
如果您想对地图列表执行
contains
,那么您必须传递整个地图,这对于您的用例来说是不可取的。
contains(mylist, {PID: 2, FIRST_NAME: "Betty", LAST_NAME: "Johns"})