DynamoDB — tidak dapat menentukan proyeksi ketika Select adalah COUNT: "Cannot Specify AttributesToGet When Select Is COUNT"

TL;DR — Query/Scan Anda mengatur Select: COUNT dan ProjectionExpression (atau AttributesToGet lama). COUNT hanya mengembalikan jumlah item yang cocok, tidak pernah mengembalikan item itu sendiri, jadi penamaan atribut yang akan dikembalikan bersifat kontradiktif — DynamoDB menolaknya. Pilih salah satu: Select: COUNT tanpa proyeksi, atau proyeksi dengan Select: SPECIFIC_ATTRIBUTES (default saat Anda menyediakan ProjectionExpression).

Apa artinya

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

Mengapa itu terjadi

  • Kedua parameter disetel sekaligusSelect: COUNT tetap di tempatnya sementara ProjectionExpression ditambahkan (atau sebaliknya).
  • Legacy AttributesToGet digabungkan dengan Select: COUNT.
  • Pembuat kueri yang selalu melampirkan proyeksi, meskipun penelepon hanya ingin menghitung.
  • Kesalahpahaman Select — mengharapkan COUNT juga menyerahkan kembali item yang dihitungnya.

Bagaimana cara memperbaikinya

  1. Hanya menghitung? Hilangkan proyeksinya. Atur Select: COUNT dan hapus ProjectionExpression/AttributesToGet.
  2. Butuh atribut khusus? Jatuhkan Select: COUNT. Berikan ProjectionExpression; DynamoDB menetapkan Select secara default ke SPECIFIC_ATTRIBUTES, jadi Anda biasanya tidak menyetel Select sama sekali.
  3. Perlu penghitungan dan itemnya? Lakukan satu panggilan untuk item tersebut (dengan proyeksi Anda) dan baca Count-nya, atau lakukan panggilan Select: COUNT terpisah.
  4. Lebih memilih ProjectionExpression daripada AttributesToGet — AWS menandai AttributesToGet sebagai parameter lama dan merekomendasikan ProjectionExpression sebagai gantinya.

Buka di DynoTable

Panel kueri DynoTable memisahkan mode penghitungan dari proyeksi — Anda dapat mengambil item dengan atribut yang dipilih atau membaca penghitungan yang cocok, tidak pernah keduanya dalam satu permintaan yang bertentangan. Buka tabel dengan ⌘K, jalankan Query, dan periksa jumlah hasil di bilah status tanpa melampirkan ProjectionExpression.

Gunakan Pembuat Kueri untuk menghasilkan permintaan hanya proyeksi atau hitungan saja untuk kode SDK Anda. Ganti profil dengan ⌘P; konfigurasikan di bawah Pengaturan → Profil dengan Uji Koneksi. Lihat Menghubungkan ke AWS dan Instal.

Sumber

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.