Pemula4 menit baca

Aksi Berbasis Item DynamoDB: GetItem, PutItem, UpdateItem, DeleteItem

API DynamoDB terbagi menjadi tiga keluarga: aksi berbasis Item yang bekerja pada satu Item lewat primary key-nya, Query yang membaca sebuah rentang dalam satu partisi, dan Scan yang membaca semuanya. Panduan ini adalah keluarga pertama — keempat operasi yang paling sering Anda pakai: GetItem, PutItem, UpdateItem, DeleteItem. Mereka adalah panggilan termurah dan tercepat yang ditawarkan DynamoDB, dan memahami distingsi mereka dengan benar (terutama Put vs Update) mencegah satu kelas bug kehilangan-data-tak-sengaja.

Apa itu operasi berbasis Item DynamoDB?

Operasi berbasis Item DynamoDB adalah keempat panggilan yang bekerja pada satu Item lewat primary key lengkapnya: GetItem membacanya, PutItem membuat atau menggantinya sepenuhnya, UpdateItem memodifikasi atribut spesifik di tempat, dan DeleteItem menghapusnya. Masing-masing mengalamatkan tepat satu Item, menjadikannya panggilan tercepat dan termurah — tidak seperti Query dan Scan, yang membaca banyak Item.

  • GetItem — baca satu Item lewat primary key lengkapnya.
  • PutItem — buat atau ganti sepenuhnya satu Item.
  • UpdateItem — buat atau modifikasi atribut spesifik satu Item di tempat.
  • DeleteItem — hapus satu Item lewat primary key lengkapnya.
  • Keempatnya membutuhkan primary key lengkap (partition key, ditambah sort key jika tabel punya satu) — mereka mengalamatkan tepat satu Item.
  • PutItem menimpa seluruh Item; UpdateItem bersifat presisi — mengacaukan keduanya adalah cara atribut menghilang diam-diam.

Ciri penentu: satu Item, key lengkap

Setiap aksi berbasis Item menargetkan satu Item lewat primary key lengkapnya. Itulah yang membuat mereka cepat dan murah — DynamoDB mem-hash partition key, langsung menuju Item, selesai. Tanpa filter, tanpa scan. Jika Anda tidak tahu key lengkapnya, ini bukan alat yang tepat; untuk itulah Query dan Scan ada.

Misalkan Anda menjalankan akun pengguna yang di-key dengan USER#<id>:

PK: USER#204   email, displayName, plan, createdAt
  • GetItem pada USER#204 → pengguna itu, langsung.
  • DeleteItem pada USER#204 → menghapus pengguna itu.

Keduanya butuh key persis. Tanpa key, tanpa aksi berbasis Item.

PutItem vs UpdateItem — yang menggigit

Inilah distingsi yang layak diresapi:

  • PutItem menulis seluruh Item. Jika USER#204 sudah ada dan Anda PutItem hanya dengan {email, displayName}, atribut plan dan createdAt yang ada lenyap — sebuah put mengganti seluruh Item, ia tidak menggabungkan.
  • UpdateItem hanya mengubah apa yang Anda sebutkan. UpdateItem dengan SET email = … membiarkan setiap atribut lain tak tersentuh, dan membuat Item jika belum ada (sebuah upsert).
Ganti seluruh ItemUbah sebagian atribut,pertahankan sisanyaModifikasi satu Item yang ada?PutItemUpdateItem

Aturan praktis: raih UpdateItem untuk mengubah Item yang sudah ada, dan gunakan PutItem hanya saat Anda benar-benar bermaksud "tulis Item ini sebagai keadaan baru yang lengkap." Baik PutItem maupun UpdateItem menerima sebuah condition expression sehingga Anda dapat membuat penulisan bersyarat ("hanya jika belum ada").

Aksi berbasis Item di DynoTable

Ingin melihat panggilan API mentah di balik aksi-aksi ini? Rakit ekspresi dan map nilai bertipe di DynamoDB expression builder, dan konversi Item plain-JSON ke format bertipe API dengan konverter DynamoDB JSON.

Di DynoTable, pekerjaan yang sama menjadi visual: buka sebuah Item di grid untuk membacanya (sebuah GetItem), edit atribut lalu Commit (sebuah UpdateItem), tambah atau ganti sebuah baris (sebuah PutItem), atau hapus salah satu — satu Item dalam satu waktu.

Membaca satu Item di Quick View DynoTable, dengan aksi Edit Item dan Copy as JSON.
Membaca satu Item di Quick View DynoTable, dengan aksi Edit Item dan Copy as JSON.

Jebakan dan langkah berikutnya

  • PutItem mengganti seluruh Item — untuk mengubah beberapa field tanpa kehilangan sisanya, gunakan UpdateItem.
  • Anda harus tahu primary key lengkap — tanpa key berarti Query/Scan, bukan aksi Item.
  • Banyak Item sekaligus? Jangan me-loop ini satu per satu — operasi batch melipatnya menjadi lebih sedikit round trip.
  • Butuh nilai lama/baru kembali? Setel ReturnValues alih-alih GetItem susulan.
  • Terkait: query vs scan mencakup sisi baca-banyak.

Ingin membaca, menulis, dan menghapus Item tanpa menulis satu baris kode API pun? Unduh DynoTable dan bekerjalah dengan tabel Anda secara langsung.

Diperbarui