DynamoDB Scan with filter,匹配'is-in-set'条件

时间:2012-07-05 07:35:16

标签: .net amazon-web-services amazon-dynamodb database-scan

我正在尝试在DynamoDB表上使用扫描操作来匹配具有给定“标记”的项目。项目的标签存储在单个集合属性中。 E.g:

machine-1: tags = "windows", "iis", "64bit"
machine-2: tags = "windows", "fs"

现在,我有一个高级支持的支持案例,但需要花费一些时间。我想要做的是匹配机器,其中'tags'包含条目“windows”“iis”。

我可以使用CONTAINS模式匹配单个模式,并指定单个AttributeValue,例如字符串值为“windows”。

但是,CONTAINS不支持单个AttributeValue或多个AttributeValues中的集合。它给出了一个错误。

所以我尝试IN(AWS高级支持也建议):但是,无论我使用单个AttributeValue(甚至只是再次查找“windows”或多个),我都得到零结果。

IN的文档很差。该操作以4个无法提供信息的词语描述,实际上:“检查完全匹配”。

虽然我等待支持可能会继续进行几轮Q& A,但是有人在阅读这个熟悉这种查询的扫描吗? (如果可以的话,请先在你的答案中测试你所说的内容:我想我已尝试过明显的答案了!)

对于参考,扫描文档:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html

1 个答案:

答案 0 :(得分:10)

这来自AWS高级支持:

“你好。

我收到了Dynamo DB的确认,目前不支持此功能。对集合的CONTAINS只能使用单个值执行。 “

Urgh。所以现在我将为每个可能的标签创建一个新属性,每列中都有一个“True”或“False”,并过滤我的Scan。