DynamoDB "Cannot Specify AttributesToGet When Select Is COUNT" — Select가 COUNT인 경우 프로젝션을 지정할 수 없습니다.

TL;DR — Query/Scan 세트는 Select: COUNTProjectionExpression(또는 기존 AttributesToGet)입니다. COUNT는 일치하는 항목의 수만 반환하고 항목 자체는 반환하지 않으므로 반환할 속성의 이름을 지정하는 것이 모순됩니다. DynamoDB는 이를 거부합니다. 하나를 선택하십시오: 투영이 없는 Select: COUNT 또는 Select: SPECIFIC_ATTRIBUTES가 있는 투영(ProjectionExpression을 제공할 때 기본값).

무엇을 의미하는가

ValidationException: 1 validation error detected: Cannot specify the AttributesToGet when choosing to get only the Count

# what the engine actually returns, reproduced against DynamoDB Local:
ValidationException: 1 validation error detected: Cannot specify the ProjectionExpression when choosing to get only the Count

(이것은 레거시 AttributesToGet 매개변수가 포함된 메시지입니다. ProjectionExpression의 경우 표현은 다르지만 규칙은 동일합니다.) Select는 읽기가 반환하는 내용을 제어합니다. COUNT은 DynamoDB에 집계(Count/ScannedCount)를 요청하고 항목 데이터는 요청하지 않습니다. ProjectionExpression/AttributesToGet은 반품된 품목의 특정 속성을 묻습니다. 이 둘은 상호 배타적입니다. Query API 참조에서는 다음과 같이 설명합니다. "ProjectionExpression 매개변수를 사용하는 경우 Select의 값은 SPECIFIC_ATTRIBUTES만 될 수 있습니다. Select의 다른 값은 오류를 반환합니다." 한 가지 비용 참고 사항: COUNT는 여전히 항목을 실제로 가져오는 것과 동일한 읽기 용량을 소비합니다. 즉, RCU가 아닌 대역폭을 절약합니다.

왜 발생하는가

  • 두 매개변수를 동시에 설정ProjectionExpression가 추가되는 동안 Select: COUNT는 그대로 유지됩니다(또는 그 반대).
  • 레거시 AttributesToGetSelect: COUNT과 결합되었습니다.
  • 호출자가 개수만 원하는 경우에도 항상 프로젝션을 첨부하는 쿼리 빌더입니다.
  • 오해 SelectCOUNT도 계산한 항목을 돌려줄 것으로 예상합니다.

어떻게 해결하는가

  1. 그냥 계산만 하시나요? 투영을 삭제합니다. Select: COUNT를 설정하고 ProjectionExpression/AttributesToGet를 제거합니다.
  2. 특정 속성이 필요합니까? Select: COUNT를 삭제합니다. ProjectionExpression를 제공합니다. DynamoDB는 기본값 Select ~ SPECIFIC_ATTRIBUTES이므로 일반적으로 Select을 전혀 설정하지 않습니다.
  3. 계수와 항목이 모두 필요합니까? 항목에 대해(투영 포함) 한 번 호출하고 해당 항목의 Count을 읽거나 별도의 Select: COUNT 호출을 수행합니다.
  4. AttributesToGet보다 ProjectionExpression 선호 — AWS는 AttributesToGet를 레거시 매개변수로 표시하고 대신 ProjectionExpression를 권장합니다.

DynoTable에서 열기

DynoTable의 쿼리 패널은 카운트 모드와 프로젝션을 분리합니다. 선택한 속성이 있는 항목을 가져오거나 일치하는 카운트를 읽습니다. 하나의 충돌 요청에서 둘 다 수행할 수는 없습니다. ⌘K가 있는 테이블을 열고 Query를 실행한 후 ProjectionExpression을 붙이지 않고 상태 표시줄에서 결과 개수를 확인합니다.

Query Builder을 사용하여 SDK 코드에 대한 투영 전용 또는 계산 전용 요청을 생성합니다. ⌘P로 프로필을 전환합니다. 설정 → 프로필에서 연결 테스트를 사용하여 구성합니다. Connect to AWSInstall를 참조하세요.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.