KeyConditions(레거시) - Amazon DynamoDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

KeyConditions(레거시)

참고

가능하면 이러한 레거시 파라미터 대신 새 표현식 파라미터를 사용하는 것이 좋습니다. 자세한 내용은 DynamoDB에서 표현식 사용 섹션을 참조하세요. 이 파라미터를 대체하는 새 파라미터에 대한 자세한 내용은 대신 KeyConditionExpression을 사용합니다. 섹션을 참조하세요.

레거시 조건 파라미터 KeyConditions에는 Query 작업의 선택 기준이 포함됩니다. 테이블에 있는 쿼리의 경우, 테이블 기본 키 속성에 있는 조건만 가질 수 있습니다. EQ 조건으로 파티션 키 이름 및 값을 제공해야 합니다. 정렬 키의 두 번째 조건은 옵션으로 입력할 수 있습니다.

참고

정렬 키 조건을 제공하지 않으면 파티션 키가 일치하는 모든 항목이 검색됩니다. FilterExpression 또는 QueryFilter가 있는 경우 항목이 검색된 후 적용됩니다.

인덱스에 있는 쿼리의 경우, 인덱스 키 속성에 있는 조건만 가질 수 있습니다. EQ 조건으로 인덱스 파티션 키 이름 및 값을 제공해야 합니다. 인덱스 정렬 키의 두 번째 조건은 옵션으로 입력할 수 있습니다.

KeyConditions 요소는 비교할 속성 이름 및 다음 파라미터로 구성됩니다.

  • AttributeValueList - 제공된 속성에 대해 평가되는 하나 이상의 값. 목록에 있는 값의 개수는 사용되는 ComparisonOperator에 따라 달라집니다.

    숫자 유형의 경우 값 비교가 숫자입니다.

    크다, 같다 또는 작다 등의 문자열 값 비교는 UTF-8 이진 인코딩을 사용하는 유니코드를 기준으로 합니다. 예를 들어 aA보다 크고 aB보다 큽니다.

    Binary의 경우, DynamoDB가 이진수 값을 비교할 때 이진수 데이터의 각 바이트를 부호가 없는 것으로 처리합니다.

  • ComparisonOperator - 속성을 평가하는 비교기. 예: 같다, 크다, 작다.

    KeyConditions의 경우 다음 비교 연산자만 지원됩니다.

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

    다음은 이러한 비교 연산자에 대한 설명입니다.

    • EQ : 같음.

      AttributeValueList에는 문자열, 숫자, 이진수 유형의 AttributeValue 하나만 포함될 수 있습니다(집합 유형 제외). 요청에서 지정한 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 같지 않습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 같지 않습니다.

    • LE : 작거나 같음.

      AttributeValueList에는 문자열, 숫자, 이진수 유형의 AttributeValue 요소 하나만 포함될 수 있습니다(집합 유형 제외). 요청에서 제공된 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 같지 않습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 비교할 수 없습니다.

    • LT : 작음.

      AttributeValueList에는 문자열, 숫자, 이진수 유형의 AttributeValue 하나만 포함될 수 있습니다(집합 유형 제외). 요청에서 제공된 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 같지 않습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 비교할 수 없습니다.

    • GE : 크거나 같음.

      AttributeValueList에는 문자열, 숫자, 이진수 유형의 AttributeValue 요소 하나만 포함될 수 있습니다(집합 유형 제외). 요청에서 제공된 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 같지 않습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 비교할 수 없습니다.

    • GT : 큼.

      AttributeValueList에는 문자열, 숫자, 이진수 유형의 AttributeValue 요소 하나만 포함될 수 있습니다(집합 유형 제외). 요청에서 제공된 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 같지 않습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 비교할 수 없습니다.

    • BEGINS_WITH: 접두사 여부 확인.

      AttributeValueList에는 문자열 또는 이진수 유형의 AttributeValue 하나만 포함될 수 있습니다(숫자 또는 집합 유형 제외). 비교 대상의 속성은 문자열 또는 이진수 유형이 되어야 합니다(숫자 또는 집합 유형 제외).

    • BETWEEN: 첫 번째 값보다 크거나 같음 및 두 번째 값보다 작거나 같음.

      AttributeValueList에는 문자열, 숫자 또는 이진수(집합 유형 제외) 중에서 동일한 형식으로 2개의 AttributeValue 요소가 들어 있어야 합니다. 대상 값이 첫 번째 요소보다 크거나 같을 때, 그리고 두 번째 요소보다 작거나 같을 때 대상 속성이 일치합니다. 요청에서 제공된 형식과 다른 형식의 AttributeValue 요소가 항목에 포함되어 있으면 값이 일치하지 않습니다. 예를 들어 {"S":"6"}{"N":"6"}과 비교할 수 없습니다. 또한 {"N":"6"}{"NS":["6", "2", "1"]}과 비교할 수 없습니다.

대신 KeyConditionExpression 사용 - 예

Music 테이블의 파티션 키와 동일한 파티션 키가 있는 여러 항목을 검색하길 원한다고 가정합니다. 다음 AWS CLI 예제에서와 같이 Query 요청을 KeyConditions 파라미터와 함께 사용할 수 있습니다.

aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist":{ "ComparisonOperator":"EQ", "AttributeValueList": [ {"S": "No One You Know"} ] }, "SongTitle":{ "ComparisonOperator":"BETWEEN", "AttributeValueList": [ {"S": "A"}, {"S": "M"} ] } }'

대신에 KeyConditionExpression을 사용할 수 있습니다.

aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a AND SongTitle BETWEEN :t1 AND :t2' \ --expression-attribute-values '{ ":a": {"S": "No One You Know"}, ":t1": {"S": "A"}, ":t2": {"S": "M"} }'