Kondisi dan filter ekspresi, operator, dan fungsi di DynamoDB - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kondisi dan filter ekspresi, operator, dan fungsi di DynamoDB

Untuk memanipulasi data dalam tabel DynamoDB, Anda menggunakan,, dan operasiPutItem. UpdateItem DeleteItem Untuk operasi manipulasi data ini, Anda dapat menentukan ekspresi kondisi untuk menentukan item mana yang harus dimodifikasi. Jika ekspresi kondisi dievaluasi ke true, operasi berhasil. Jika tidak, operasi gagal.

Bagian ini mencakup fungsi dan kata kunci bawaan untuk menulis ekspresi filter dan ekspresi kondisi di Amazon DynamoDB. Untuk informasi lebih rinci tentang fungsi dan pemrograman dengan DynamoDB, lihat Pemrograman dengan DynamoDB dan AWS SDKs dan Referensi DynamoDB. API

Sintaks untuk ekspresi filter dan kondisi

Dalam ringkasan sintaks berikut, operand dapat berupa sebagai berikut:

  • Nama atribut tingkat atas, seperti Id, Title, Description, atau ProductCategory

  • Jalur dokumen yang mereferensikan atribut bersarang

condition-expression ::= operand comparator operand | operand BETWEEN operand AND operand | operand IN ( operand (',' operand (, ...) )) | function | condition AND condition | condition OR condition | NOT condition | ( condition ) comparator ::= = | <> | < | <= | > | >= function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path, type) | begins_with (path, substr) | contains (path, operand) | size (path)

Membuat perbandingan

Gunakan komparator ini untuk membandingkan operan dengan nilai tunggal:

  • a = b- Benar a jika sama denganb.

  • a <> bBenar jika a tidak sama denganb.

  • a < bBenar jika a kurang darib.

  • a <= bBenar jika a kurang dari atau sama denganb.

  • a > bBenar jika a lebih besar darib.

  • a >= bBenar jika a lebih besar dari atau sama denganb.

Gunakan kata kunci BETWEEN dan IN untuk membandingkan operan dengan rentang nilai atau daftar nilai yang disebutkan:

  • a BETWEEN b AND cBenar jika a lebih besar dari atau sama denganb, dan kurang dari atau sama denganc.

  • a IN (b, c, d) — Benar jika a sama dengan nilai apa pun dalam daftar—misalnya, salah satu dari, bc, atau. d Daftar ini dapat berisi hingga 100 nilai, dipisahkan dengan koma.

Fungsi

Gunakan fungsi berikut untuk menentukan apakah atribut berada dalam item, atau untuk mengevaluasi nilai atribut. Nama fungsi ini peka huruf besar/kecil. Untuk atribut bersarang, Anda harus menyediakan jalur dokumen yang lengkap.

Fungsi Deskripsi

attribute_exists (path)

True jika item berisi atribut yang ditentukan oleh path.

Contoh: Periksa apakah item dalam tabel Product memiliki tampilan tampak samping.

  • attribute_exists (#Pictures.#SideView)

attribute_not_exists (path)

True jika atribut yang ditentukan oleh path tidak ada dalam item.

Contoh: Periksa apakah item memiliki atribut Manufacturer.

  • attribute_not_exists (Manufacturer)

attribute_type (path, type)

True jika atribut di jalur yang ditentukan merupakan jenis daya tertentu. Parameter type harus salah satu dari hal berikut:

  • S – String

  • SS – Set string

  • N – Nomor

  • NS – Set nomor

  • B – Biner

  • BS – Set biner

  • BOOL – Boolean

  • NULL – Null

  • L – Daftar

  • M – Peta

Anda harus menggunakan nilai atribut ekspresi untuk parameter type.

Contoh: Periksa apakah atribut QuantityOnHand berjenis Daftar. Dalam contoh ini, :v_sub adalah placeholder untuk string L.

  • attribute_type (ProductReviews.FiveStar, :v_sub)

Anda harus menggunakan nilai atribut ekspresi untuk parameter type.

begins_with (path, substr)

True jika atribut yang ditentukan oleh path dimulai dengan substring tertentu.

Contoh: Periksa apakah beberapa karakter pertama dari gambar URL tampilan depanhttp://.

  • begins_with (Pictures.FrontView, :v_sub)

Nilai atribut ekspresi :v_sub adalah placeholder untuk http://.

contains (path, operand)

True jika atribut yang ditentukan oleh path adalah salah satu hal berikut:

  • String yang berisi substring tertentu.

  • Set yang berisi elemen tertentu dalam set.

  • List yang berisi elemen tertentu dalam daftar.

Jika atribut yang ditentukan oleh path adalah String, operand harus String. Jika atribut yang ditentukan oleh path adalah Set, operand harus merupakan jenis elemen set.

Jalan dan operan harus berbeda. Artinya, contains (a, a) mengembalikan kesalahan.

Contoh: Periksa apakah atribut Brand berisi substring Company.

  • contains (Brand, :v_sub)

Nilai atribut ekspresi :v_sub adalah placeholder untuk Company.

Contoh: Periksa apakah produk tersedia dalam warna merah.

  • contains (Color, :v_sub)

Nilai atribut ekspresi :v_sub adalah placeholder untuk Red.

size (path)

Mengembalikan angka yang mewakili ukuran atribut ini. Berikut ini adalah jenis daya yang valid untuk digunakan dengan size.

Jika atribut adalah jenis String, size menampilkan panjang string.

Contoh: Periksa apakah string Brand kurang dari atau sama dengan 20 karakter. Nilai atribut ekspresi :v_sub adalah placeholder untuk 20.

  • size (Brand) <= :v_sub

Jika atribut adalah jenis Binary, size menghasilkan jumlah byte dalam nilai atribut.

Contoh: Misalkan item ProductCatalog memiliki atribut binari yang disebut VideoClip yang berisi video singkat dari produk yang digunakan. Ekspresi berikut memeriksa apakah VideoClip melebihi 64.000 byte. Nilai atribut ekspresi :v_sub adalah placeholder untuk 64000.

  • size(VideoClip) > :v_sub

Jika atribut adalah jenis daya Set, size menghasilkan jumlah elemen dalam set.

Contoh: Periksa apakah produk tersedia dalam lebih dari satu warna. Nilai atribut ekspresi :v_sub adalah placeholder untuk 1.

  • size (Color) < :v_sub

Jika atribut adalah jenis List atau Map, size menghasilkan jumlah elemen turunan.

Contoh: Periksa apakah jumlah ulasan OneStar telah melampaui ambang batas tertentu. Nilai atribut ekspresi :v_sub adalah placeholder untuk 3.

  • size(ProductReviews.OneStar) > :v_sub

Evaluasi logika

Gunakan kata kunci AND, OR, dan NOT untuk melakukan evaluasi logika. Dalam daftar berikut, a dan b mewakili kondisi yang akan dievaluasi.

  • a AND bBenar jika a dan b keduanya benar.

  • a OR bBenar jika salah satu a atau b (atau keduanya) benar.

  • NOT aBenar jika a salah. Salah jika a benar.

Berikut ini adalah contoh kode AND dalam suatu operasi.

dynamodb-local (*)> select * from exprtest where a > 3 and a < 5;

Tanda kurung

Gunakan tanda kurung untuk mengubah prioritas evaluasi logis. Misalnya, anggaplah bahwa kondisi a dan b benar, dan kondisi c itu salah. Ekspresi berikut bernilai True:

  • a OR b AND c

Namun, jika Anda mengapit kondisi dalam tanda kurung, kondisi tersebut akan dievaluasi terlebih dahulu. Misalnya, nilai berikut bernilai false:

  • (a OR b) AND c

catatan

Anda dapat menyarangkan tanda kurung dalam sebuah ekspresi. Bagian paling dalam akan dievaluasi terlebih dahulu.

Berikut ini adalah contoh kode dengan tanda kurung dalam evaluasi logis.

dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or ( a = 5 and c = “coffee”);

Prioritas dalam kondisi

DynamoDB mengevaluasi kondisi dari kiri ke kanan menggunakan aturan prioritas berikut:

  • = <> < <= > >=

  • IN

  • BETWEEN

  • attribute_exists attribute_not_exists begins_with contains

  • Tanda kurung

  • NOT

  • AND

  • OR