2015-08-28 24 views
3

我有一個這樣的結構:適用於PHP的DynamoDB SDK:是否可以使用嵌套項目的鍵掃描項目列表?

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

是否有可能在列表中的項目由「單元名」進行掃描? 我發現掃描具有這樣的PARAMS的唯一途徑:

[ 

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

但它會檢查全部項目的比賽,並不能與我的情況「CAS」字段查找項目。

我需要在MongoDB中類似 「$ elemMatch」:

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

回答

0

DynamoDB目前不支持查詢/列表中的地圖內的一個屬性過濾。你可以像你說的那樣,指定整個Map並使用表達式「contains(path.to.list,:map)」,並在表達式屬性值中指定完整的地圖。也就是說,如果您要支付無論如何都用掃描回讀所有項目,您可以檢索項目並在客戶端處理它們以評估您的狀況。

+0

是的,現在我明白了。非常感謝! –

相關問題