Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ekspresi kondisi kunci untuk operasi Query di DynamoDB
Anda dapat menggunakan nama atribut apa pun dalam ekspresi kondisi kunci, asalkan karakter pertama adalah a-z
atau A-Z
dan karakter lainnya (mulai dari karakter kedua, jika ada) adalah a-z
, A-Z
, or 0-9
. Selain itu, nama atribut tidak boleh berupa kata khusus DynamoDB. (Untuk daftar lengkapnya, lihat Kata-kata penggunaan khusus di DynamoDB.) Jika nama atribut tidak memenuhi persyaratan ini, Anda harus menentukan nama atribut ekspresi sebagai placeholder. Untuk informasi selengkapnya, lihat Nama atribut ekspresi (alias) di DynamoDB.
Untuk item dengan nilai kunci partisi tertentu, DynamoDB menyimpan item ini berdekatan, dalam urutan berdasarkan nilai kunci urutan. Dalam operasi Query
, DynamoDB mengambil item dalam urutan yang diurutkan, lalu memproses item menggunakan KeyConditionExpression
dan FilterExpression
apa pun yang mungkin ada. Baru setelah itu hasil Query
dikirim kembali ke klien.
Operasi Query
selalu mengembalikan kumpulan hasil. Jika tidak ditemukan item yang cocok, set hasil kosong.
Hasil Query
selalu diurutkan berdasarkan nilai kunci urutan. Jika jenis daya kunci urutan adalah Number
, hasilnya dikembalikan dalam urutan numerik. Jika tidak, hasilnya dikembalikan dalam urutan UTF -8 byte. Secara default, urutannya menaik. Untuk membalikkan urutan, atur parameter ScanIndexForward
ke false
.
Operasi Query
tunggal dapat mengambil data maksimum 1 MB. Batas ini berlaku sebelum FilterExpression
atau ProjectionExpression
diterapkan pada hasil. Jika LastEvaluatedKey
ada dalam respons dan bukan null, Anda harus memberi nomor halaman pada kumpulan hasil (lihat Hasil query tabel paginasi di DynamoDB).
Contoh ekspresi kondisi kunci
Untuk menentukan kriteria pencarian, Anda menggunakan ekspresi kondisi kunci—string yang menentukan item yang akan dibaca dari tabel atau indeks.
Anda harus menentukan nama dan nilai kunci partisi sebagai syarat kesetaraan. Anda tidak dapat menggunakan atribut bukan kunci dalam ekspresi kondisi kunci.
Anda juga dapat memberikan kondisi kedua untuk kunci urutan (jika ada). Kondisi kunci urutan harus menggunakan salah satu operator perbandingan berikut:
-
— benar jika atributa
=b
a
sama dengan nilaib
-
— benar jikaa
<b
a
kurang darib
-
— benar jikaa
<=b
a
kurang dari atau sama denganb
-
— benar jikaa
>b
a
lebih besar darib
-
— benar jikaa
>=b
a
lebih besar dari atau sama denganb
-
— benar jikaa
BETWEENb
ANDc
a
lebih besar dari atau sama denganb
dan kurang dari atau sama denganc
.
Fungsi berikut ini juga didukung:
-
begins_with (
— true jika nilai atributa
,substr
)
dimulai dengan substring tertentu.a
Contoh berikut AWS Command Line Interface (AWS CLI) menunjukkan penggunaan ekspresi kondisi kunci. Ekspresi ini menggunakan placeholder (seperti :name
dan :sub
) dan bukan nilai aktual. Untuk informasi selengkapnya, lihat Nama atribut ekspresi (alias) di DynamoDB dan Menggunakan nilai atribut ekspresi di DynamoDB.
contoh
Ajukan kueri tabel Thread
untuk ForumName
(kunci partisi) tertentu. Semua item dengan nilai ForumName
tersebut dibaca oleh kueri karena kunci urutan (Subject
) tidak termasuk dalamKeyConditionExpression
.
aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :name" \ --expression-attribute-values '{":name":{"S":"Amazon DynamoDB"}}'
contoh
Ajukan kueri tabel Thread
untuk ForumName
kunci partisi), tetapi kali ini hanya mengembalikan item dengan Subject
(kunci urutan) tertentu.
aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :name and Subject = :sub" \ --expression-attribute-values file://values.json
Argumen untuk --expression-attribute-values
disimpan dalam file values.json
.
{ ":name":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"} }
contoh
Kueri tabel Reply
untuk Id
tertentu (kunci partisi), tetapi hanya kembalikan item yang ReplyDateTime
(kunci urutan) dimulai dengan karakter tertentu.
aws dynamodb query \ --table-name Reply \ --key-condition-expression "Id = :id and begins_with(ReplyDateTime, :dt)" \ --expression-attribute-values file://values.json
Argumen untuk --expression-attribute-values
disimpan dalam file values.json
.
{ ":id":{"S":"Amazon DynamoDB#DynamoDB Thread 1"}, ":dt":{"S":"2015-09"} }