2016-09-02 16 views
0

私はDynamoDBでINクエリのようにPostgresまたはMongoを作成しようとしています。DynamoDB INクエリ

{ 
    type: 'a' 
}, 
{ 
    type: 'b' 
}, 
{ 
    type: 'c' 
} 

私は、例えばのためにスキャンすることができます方法:私はこのようなデータ構造を持って考えると

すべてのaとbのですか?

私はこのような何か試してみた:

docClient.scan({ 
    TableName: 'Exmaple', 
    FilterExpression: 'type IN (:var)', 
    ExpressionAttributeValues: { 
     ':var': docClient.createSet(['a','b']) 
    } 
}); 

をしかし、それだけで何も返しません。

ご協力いただきありがとうございます。

+0

あなたのハッシュキーとは何ですか? type属性がハッシュキーとして定義されていると仮定するのは公正でしょうか? – notionquest

答えて

0

質問で提供されるデータ構造に基づいて、属性「タイプ」がSET(すなわちSS)ではなく「STRING」(すなわちS)のDynamodbデータタイプとして定義されていると仮定します。

INはDynamodbで使用できます。SETデータ型のみ。

IN:2組の一致する要素をチェックします。 AttributeValueList には、String型、 Number、またはBinary(セット型ではない)の1つ以上のAttributeValue要素を含めることができます。これらの属性は、項目の既存のセットタイプ属性に対して と比較されます。入力セットが のいずれかの要素がアイテム属性に存在する場合、式 はtrueと評価されます。

あなたはSTRINGデータ型として定義している場合、あなたは「OR」条件を使用して属性の複数の値を確認することができます。例の下: -

var params = { 
    TableName: "Movies",  
    FilterExpression: "title = :title1 OR title = :title2", 
    ExpressionAttributeValues: { 
     ":title1": "The Big New Movie 1", 
     ":title2": "The Big New Movie 2", 
    } 
}; 

DynamoDBのSETデータ型は次のようになります。 -

enter image description here

+0

クイックアンサーに感謝します。私は "OR"ソリューションを使用しました。魅力のように動作します:-) –

+0

答えを受け入れてください。 – notionquest