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 CountMengapa itu terjadi
- Kedua parameter disetel sekaligus —
Select: COUNTtetap di tempatnya sementaraProjectionExpressionditambahkan (atau sebaliknya). - Legacy
AttributesToGetdigabungkan denganSelect: COUNT. - Pembuat kueri yang selalu melampirkan proyeksi, meskipun penelepon hanya ingin menghitung.
- Kesalahpahaman
Select— mengharapkanCOUNTjuga menyerahkan kembali item yang dihitungnya.
Bagaimana cara memperbaikinya
- Hanya menghitung? Hilangkan proyeksinya. Atur
Select: COUNTdan hapusProjectionExpression/AttributesToGet. - Butuh atribut khusus? Jatuhkan
Select: COUNT. BerikanProjectionExpression; DynamoDB menetapkanSelectsecara default keSPECIFIC_ATTRIBUTES, jadi Anda biasanya tidak menyetelSelectsama sekali. - Perlu penghitungan dan itemnya? Lakukan satu panggilan untuk item tersebut (dengan proyeksi Anda) dan baca
Count-nya, atau lakukan panggilanSelect: COUNTterpisah. - Lebih memilih
ProjectionExpressiondaripadaAttributesToGet— AWS menandaiAttributesToGetsebagai parameter lama dan merekomendasikanProjectionExpressionsebagai 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
- Kueri — Referensi Amazon DynamoDB API (diverifikasi 13-07-2026)
- AttributesToGet (warisan) (diverifikasi 13-07-2026)
Kesalahan terkait
- Tidak dapat menggunakan parameter ekspresi dan non-ekspresi — mencampur parameter lama dan ekspresi.
- Kondisi kunci kueri tidak didukung — format kondisi kunci salah pada permintaan yang sama.
- Pelajari: Hitung, jumlah & agregat · Ekspresi proyeksi
Referensi
- Kueri — Referensi Amazon DynamoDB API
- Pindai — Referensi Amazon DynamoDB API
- AttributesToGet (warisan) — Panduan Pengembang Amazon DynamoDB
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB
Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.