DynamoDB SDK for PHP:是否可以使用嵌套项的键扫描项列表?

时间:2015-08-28 09:05:47

标签: php amazon-dynamodb aws-sdk

我有这样的结构:

{
    Id: "55e0173c485dd",
    Revisions: [
        {
            CAS: "2132-123-123",
            ComponentName: "bar"
        },
        {
            ComponentName: "baz"
        }
    ]
}

是否可以通过" ComponentName"进行扫描。列表中的项目? 我找到了用这样的参数扫描的唯一方法:

[

    'ExpressionAttributeValues' => [
        ':component' => [
            'M' => [
                'ComponentName' => ['S' => 'bar']
            ]
        ]
    ],
    'FilterExpression' => 'contains (Revisions, :component)'
];

但它检查完整的项目匹配,但无法找到" CAS"在我的案例中。

我需要像" $ elemMatch"在MongoDB中:

http://docs.mongodb.org/manual/reference/operator/query/elemMatch/

1 个答案:

答案 0 :(得分:1)

DynamoDB当前不支持对List中的Map内的属性进行查询/过滤。您可以如您所说,指定整个Map并使用表达式“contains(path.to.list,:map)”并在表达式属性值中指定完整的映射。

话虽如此,如果您付费用于扫描所有带有扫描的物品,您可以检索物品并在客户端处理它们以评估您的状况。