2016-09-28 3 views
0

mutiple primary key에 따라 속성 집합을 쿼리하려고합니다. 예 : primary_key1 및 primary_key2를 사용하여 두 개의 레코드를 쿼리하려고합니다. 나는이 KeyConditionExpression: "primary_key in (:key1, key2)" ExpressionAttributeValues: { ... } dynamodb, 쿼리 작업에서 기본 키`in` 문장을 사용하는 방법?

처럼 KeyConditionExpression을 사용하지만, KeyConditionExpression의 문장에서 사용하는 실수가있다.

내가 점점 오전 오류 :

구문 오류 내가이

KeyConditionExpression

에서 사용 in 문장을 수정하려면 어떻게하면?

+0

어떤 오류가 발생합니까? –

+0

KeyConditionExpression에 잘못된 연산자가 사용되었습니다 : IN' – elsonwx

답변

1

KeyConditions는 IN 연산자를 지원하지 않습니다. 또한 OR 연산자를 지원하지 않습니다.

그러나 해시 키와 정렬 키로 데이터를 필터링하려면 AND 연산자를 지원하십시오.

KeyConditions를 들어

만 다음과 같은 비교 연산자는 가 지원됩니다

EQ | 르 | LT | GE | GT | BEGINS_WITH | BETWEEN

KeyConditionExpression - (문자열) 쿼리 동작에서 검색 할 항목의 값인 값을 지정하는 조건입니다.

조건은 단일 파티션 키 값에 대해 동등성 테스트를 수행해야합니다. 조건은 단일 정렬 키 값에 대해 여러 비교 테스트 중 하나 ( ) 중 하나를 수행 할 수도 있습니다. 쿼리에서 KeyConditionExpression을 사용하여 은 지정된 파티션 키 값과 정렬 키 값 또는 동일한 파티션 키 값을 가지지 만 정렬 키 값을 가진 여러 항목으로 항목 하나를 검색 할 수 있습니다.

FilterExpression을 사용하는 쿼리가 아닌 의 검색이 될 수 있습니다. 그러나 검색은 DynamoDB에서 비용이 많이 드는 작업이며 원하는 솔루션이 아닐 수도 있습니다.

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

     } 
    }; 

다른 옵션은 다른 키를 사용하여 데이터베이스를 여러 번 쿼리하는 것입니다.