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

DynamoDB SDK for PHP: Is it possible to scan a list of items with key of a nested item?

我有这样的结构:

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

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

[

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

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

我需要 MongoDB 中的“$elemMatch”之类的东西:

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

DynamoDB 当前不支持 querying/filtering 列表中映射中的属性。您可以如您所说,指定整个地图并使用表达式 "contains(path.to.list, :map)" 并在表达式属性值中指定完整地图。

话虽这么说,但如果您支付费用以通过扫描读回所有项目,您只需检索这些项目并在客户端处理它们以评估您的情况。