Dot-Net
帶過濾器的 DynamoDB 掃描,匹配“is-in-set”條件
我正在嘗試對 DynamoDB 表使用 Scan 操作來匹配具有給定“標籤”的項目。項目的標籤儲存在單個集合屬性中。例如:
machine-1: 標籤 = "windows", "iis", "64bit" machine-2: 標籤 = "windows", "fs"現在,我有一個支持高級支持的支持案例,但這需要一些時間。我想要做的是匹配“標籤”包含條目“windows”和“iis”的機器。
例如,我可以通過使用
CONTAINS模式匹配單個屬性值,並使用字元串值“windows”指定單個屬性值。但是,
CONTAINS不支持單個 AttributeValue 或多個 AttributeValue 中的集合。它給出了一個錯誤。所以我嘗試
IN了(AWS 高級支持也建議這樣做):但是,無論我使用單個 AttributeValue(甚至只是再次尋找“視窗”還是多個),我都得到零結果。的文件
IN很差。該操作用 4 個無意義的詞來描述,實際上是:“檢查完全匹配”。當我等待支持可能會繼續進行幾輪問答時,是否有人讀過這篇文章,熟悉 Scan 的這種查詢?(如果可以的話,請先測試你在回答中所說的話:我想我已經嘗試了明顯的那些!)
對於參考,掃描文件:http ://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html
這來自 AWS 高級支持:
“你好。
我從 Dynamo DB 得到確認,目前不支持。CONTAINS 針對集合只能使用單個值執行。"
呃。因此,現在我將為每個可能的標籤創建一個新屬性,在每列中使用“真”或“假”,然後過濾我的掃描。