2012-07-05 36 views
13

我試圖在DynamoDB表上使用掃描操作來匹配給定'標籤'的項目。項目的標籤存儲在一個集合屬性中。例如:DynamoDB使用過濾器掃描,匹配'is-in-set'條件

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

現在,我有一個使用Premium Support打開的支持案例,但這需要一些時間。我想要做的是匹配「標籤」包含條目「窗口」「iis」的機器。

例如,我可以使用CONTAINS模式匹配單個模式,並指定一個字符串值爲「windows」的單個AttributeValue。

但是,CONTAINS不支持單個AttributeValue或多個AttributeValues中的集合。它給出了一個錯誤。因此,我嘗試了IN(也提出了一些AWS高級支持):但是,無論我使用單個AttributeValue(即使只是再次查找「windows」還是多個),我都會得到零結果。

IN的文檔很差。操作用4個無用詞來描述,實際上:「檢查完全匹配」。

當我等待支持可能繼續進行幾輪Q & A時,是否有人閱讀過這類熟悉Scan的這種查詢? (如果你可以,請測試你在說什麼在你的答案第一:我想我已經嘗試了很明顯的)

對於裁判,掃描文檔:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html

+1

當我收到高級支持的回覆(好的,好的:目前爲止不好),我會在這裏發佈。花了很長時間,但他們現在直接與開發人員聯繫.. –

回答

10

這從AWS高級支持:

「你好。

我從迪納摩DB,這是目前不支持的確認。包含針對一組只能與單個值執行。」

Urgh。因此,現在我將爲每個可能的標籤創建一個新屬性,並在每列中添加「True」或「False」,並對其進行過濾。

+0

你可以做「標籤包含窗口或標籤包含iis」 –