Operator perbandingan dan referensi fungsi - Amazon DynamoDB

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

Operator perbandingan dan referensi fungsi

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

Sintaks untuk ekspresi filter dan kondisi

Dalam ringkasan sintaks berikut, operand dapat berupa yang berikut ini:

  • 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 pembanding ini untuk membandingkan operan dengan rentang nilai atau daftar nilai yang disebutkan:

  • a = b — True jika a sama dengan b.

  • a <> b — True jika a tidak sama dengan b.

  • a < b — True jika a kurang dari b.

  • a <= b — True jika a kurang dari atau sama dengan b.

  • a > b — True jika a lebih besar dari b.

  • a >= b — True jika a lebih besar dari atau sama dengan b.

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

  • a BETWEEN b AND c - True jika a lebih besar dari atau sama dengan b, dan kurang dari atau sama dengan c.

  • a IN (b, c, d) – True jika a sama dengan nilai apa pun dalam daftar—misalnya, salah satu dari b, c, 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 URL gambar tampilan depan adalah http://.

  • 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 b – True jika a dan b adalah True.

  • a OR b – True jika a atau b (atau keduanya) adalah True.

  • NOT a – True jika a adalah false. False jika a adalah true.

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. Sebagai contoh, misalkan kondisi a dan b adalah True, dan kondisi c adalah False. 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