DynamoDB — Ekspresi tidak boleh kosong
TL;DR — Anda meneruskan parameter ekspresi (FilterExpression, KeyConditionExpression, ProjectionExpression, UpdateExpression, atau ConditionExpression) sebagai string kosong "". DynamoDB mengharuskan parameter ekspresi berupa ekspresi tidak kosong yang valid atau tidak ada sama sekali — string kosong tidak valid. Hanya sertakan parameter ketika Anda benar-benar memiliki ekspresi; jika tidak, hilangkan kuncinya.
Apa artinya
ValidationException: Invalid FilterExpression: The expression can not be empty;
ValidationException: Invalid KeyConditionExpression: The expression can not be empty;Mengapa itu terjadi
- Param yang dibuat secara kondisional selalu disetel — kode selalu melampirkan
FilterExpressionke objek permintaan, lalu meninggalkannya""ketika tidak ada filter yang dipilih. - Helper/ORM/connector yang mengeluarkan string ekspresi kosong alih-alih membuang kunci saat daftar filter kosong.
- Penggabungan string yang tidak menghasilkan apa pun — menggabungkan array kondisi kosong akan menghasilkan
"". - Konten yang dipangkas — placeholder dihapus, meninggalkan ekspresi kosong.
Bagaimana cara memperbaikinya
- Hanya atur parameter jika tidak kosong. Buat objek params dengan syarat:
if (filter) params.FilterExpression = filter;— jangan pernah menetapkan"". - Hapus kunci kosong sebelum panggilan — menghapus properti ekspresi apa pun yang nilainya berupa string /whitespace kosong dari permintaan.
- Jaga pembuat Anda — jika daftar kondisi kosong, jangan lampirkan ekspresi sama sekali.
- Ingat bahwa keduanya independen —
ExpressionAttributeNames/Valuesjuga harus dihilangkan (bukan{}yang direferensikan apa pun) jika tidak ada ekspresi yang menggunakannya. - Untuk pembacaan tabel lengkap,
ScantanpaFilterExpressionsudah benar — hilangkan parameternya daripada meneruskan parameter kosong.
Jalankan di DynoTable
DynoTable hanya mengirimkan parameter ekspresi yang sebenarnya Anda konfigurasikan — daftar filter kosong menghilangkan FilterExpression seluruhnya alih-alih meneruskan "". Buka tabel dengan ⌘K, tambahkan filter di panel kueri, dan salin permintaan yang dihasilkan ketika setidaknya ada satu kondisi.
Gunakan Pembuat Kueri untuk pembacaan prototipe sebelum memasang parameter kondisional dalam kode. Staging (⌘S) menangkap kesalahan ekspresi kosong pada pembaruan. Ganti profil dengan ⌘P; Uji Koneksi pada Pengaturan → Profil mengonfirmasi tabel target. Lihat Menghubungkan ke AWS dan Instal. Parameter yang dihilangkan dan string kosong berbeda — hanya string kosong yang memicu kesalahan ini.
Sumber
- Menggunakan ekspresi di DynamoDB (diverifikasi 13-07-2026)
- Kueri — Referensi Amazon DynamoDB API (diverifikasi 13-07-2026)
Kesalahan terkait
- Kondisi kunci kueri tidak didukung — format
KeyConditionExpressionyang salah (tidak kosong). - Sintaks UpdateExpression tidak valid — ekspresi pembaruan yang tidak kosong namun formatnya salah.
- Pelajari: Strategi pemfilteran · Ekspresi kondisi utama
Referensi
- Menggunakan ekspresi di DynamoDB — Panduan Pengembang Amazon DynamoDB
- Kueri — Referensi Amazon DynamoDB API
- Pindai — Referensi Amazon DynamoDB API
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB
Terakhir diverifikasi 13-07-2026 terhadap dokumentasi resmi AWS yang ditautkan di atas.