2016-09-28 48 views
0

複数の主キーに基づいてプロパティのセットを照会します。例: 私は、primary_key1とprimary_key2を使って2つのレコードを照会したい。 このようなKeyConditionExpressionを使用しました。 KeyConditionExpression: "primary_key in (:key1, key2)" ExpressionAttributeValues: { ... } dynamodb、クエリ操作で主キー `in`文を使う方法は?

ですが、KeyConditionExpressionの文章で間違いがあります。

私は取得していますエラーは次のとおりです。

構文エラーは、私がこれを

KeyConditionExpression

で使用 in文を修正するにはどうすればよいとき?

+0

どのようなエラーが表示されますか? –

+0

KeyConditionExpressionで無効な演算子が使用されました:IN' – elsonwx

答えて

1

KeyConditionsは、INオペレータをサポートしていません。また、OR演算子もサポートしていません。

ただし、ハッシュキーとソートキーでデータをフィルタリングするにはAND演算子をサポートしています。 KeyConditionsについては

、唯一以下の比較演算子は がサポートされています。

EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN

KeyConditionExpression - (文字列)クエリアクションによって取得されるアイテムのキーの値を と指定する条件。

この条件では、単一のパーティションキー の値に対して同等性テストを実行する必要があります。この条件では、単一のソートキー値に対していくつかの比較テストのうちの1つを実行することもできます( )。クエリでKeyConditionExpressionを使用すると、 は、指定されたパーティションキー値とソートキー値 または同じパーティションキー値を持つが、異なる ソートキー値を持つ複数のアイテムを持つ1つのアイテムを取得できます。

あなたはFilterExpressionを使用してではなく、クエリをスキャンすることができます。ただし、スキャンはDynamoDBのコストのかかる操作であり、探しているソリューションではない可能性があります。

var params = { 
     TableName: "Movies",  
     FilterExpression: "title IN (:titlevalue1, :titlevalue2)", 
     ExpressionAttributeValues: { 
      ":titlevalue1": "The Big New Movie 2012", 
      ":titlevalue2": "The Big New Movie", 

     } 
    }; 

もう1つのオプションは、異なるキーを使用してデータベースを複数回クエリすることです。

関連する問題