DynamoDB:用于收集嵌套对象的过滤器表达式

时间:2018-12-12 17:06:33

标签: amazon-dynamodb dynamodb-queries

鉴于下面的数据结构,我想编写一个过滤器表达式来查询与给定表达式(items.name =:param)匹配的所有项

{
    "id" : "1",
    // nested collection
    "nestedValues": [
         {
             "id" : "1",
             "name":"item1" 
         },
         {
             "id": "2",
             "name":"item2" 
         }
    ]
}

我只是尝试过(但不起作用):

String filterExpression = "nestedValues.name = :param";
Map valueMap = new HashMap();
valueMap.put(":param", "item2");
ItemCollection itemCollection = table.scan(
       new ScanSpec()
       .withFilterExpression(filterExpression)
       .withValueMap(valueMap)
);

当我尝试时(当然,因为我在集合中指定了索引,所以它可以工作):

String filterExpression = "nestedValues[1].name = :param";
Map valueMap = new HashMap();
valueMap.put(":param", "item2");
ItemCollection itemCollection = table.scan(
        new ScanSpec()
        .withFilterExpression(filterExpression)
        .withValueMap(valueMap)
);

如何在nestedValues集合中轻松获取所有名称为“ item2”的数据库项目?

提前谢谢

(我也在这里的AWS论坛上问过:https://forums.aws.amazon.com/thread.jspa?messageID=881391&#881391

0 个答案:

没有答案