繁体   English   中英

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

[英]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当前不支持对List中的Map内的属性进行查询/过滤。 您可以如您所述,指定整个Map并使用表达式“contains(path.to.list,:map)”并在表达式属性值中指定完整的映射。

话虽这么说,如果你付费用无论如何都要通过扫描回读所有项目,你可以只检索项目并在客户端处理它们以评估你的状况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM