Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
KeyConditions (warisan)
catatan
Kami menyarankan agar Anda menggunakan parameter ekspresi yang baru, bukan parameter warisan ini, jika memungkinkan. Untuk informasi selengkapnya, lihat Menggunakan ekspresi di DynamoDB. Untuk informasi spesifik tentang parameter baru sebagai pengganti untuk yang satu ini, gunakan KeyConditionExpressionsebagai gantinya..
Parameter bersyarat warisan KeyConditions
berisi kriteria pemilihan untuk operasi Query
. Untuk kueri pada tabel, Anda dapat memiliki syarat pada tabel atribut kunci primer saja. Anda harus memberikan nama kunci partisi dan nilai sebagai syarat EQ
. Anda dapat memberikan syarat kedua secara opsional, dengan merujuk pada kunci urutan.
catatan
Jika Anda tidak memberikan syarat kunci urutan, semua item yang cocok dengan kunci partisi akan diambil. Jika ada, FilterExpression
atau QueryFilter
akan diterapkan setelah item diambil.
Untuk kueri pada indeks, Anda dapat memiliki syarat hanya pada atribut kunci indeks. Anda harus memberikan nama kunci partisi indeks dan nilai sebagai syarat EQ
. Anda dapat memberikan syarat kedua secara opsional, dengan merujuk pada kunci urutan indeks.
Setiap elemen KeyConditions
terdiri dari nama atribut untuk dimodifikasi, beserta hal berikut:
-
AttributeValueList
- Satu atau beberapa nilai untuk mengevaluasi atribut yang disediakan. Jumlah nilai dalam daftar tergantung padaComparisonOperator
yang sedang digunakan.Untuk jenis Angka, perbandingan nilainya bersifat numerik.
Perbandingan nilai string untuk lebih besar dari, sama, atau kurang dari didasarkan pada Unicode dengan UTF -8 pengkodean biner. Sebagai contoh,
a
lebih besar dariA
, dana
lebih besar dariB
.Untuk Biner, DynamoDB memperlakukan setiap byte data biner sebagai tidak bertanda ketika membandingkan nilai-nilai biner.
-
ComparisonOperator
- Sebuah pembanding untuk mengevaluasi atribut. Misalnya: sama dengan, lebih besar dari, dan kurang dari.Untuk
KeyConditions
, hanya operator perbandingan berikut yang didukung:EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
Berikut adalah deskripsi setiap operator perbandingan.
-
EQ
: Sama dengan.AttributeValueList
hanya dapat berisi satuAttributeValue
berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh,{"S":"6"}
tidak sama dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sama dengan{"NS":["6", "2", "1"]}
. -
LE
: Kurang dari atau sama dengan.AttributeValueList
hanya dapat berisi satu elemenAttributeValue
berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang disediakan dalam permintaan, nilainya tidak cocok. Sebagai contoh,{"S":"6"}
tidak sama dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sebanding dengan{"NS":["6", "2", "1"]}
. -
LT
: Kurang dari.AttributeValueList
hanya dapat berisi satuAttributeValue
berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang disediakan dalam permintaan, nilainya tidak cocok. Sebagai contoh,{"S":"6"}
tidak sama dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sebanding dengan{"NS":["6", "2", "1"]}
. -
GE
: Lebih besar dari atau sama dengan.AttributeValueList
hanya dapat berisi satu elemenAttributeValue
berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang disediakan dalam permintaan, nilainya tidak cocok. Sebagai contoh,{"S":"6"}
tidak sama dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sebanding dengan{"NS":["6", "2", "1"]}
. -
GT
: Lebih besar dari.AttributeValueList
hanya dapat berisi satu elemenAttributeValue
berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang disediakan dalam permintaan, nilainya tidak cocok. Sebagai contoh,{"S":"6"}
tidak sama dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sebanding dengan{"NS":["6", "2", "1"]}
. -
BEGINS_WITH
: Memeriksa prefiks.AttributeValueList
hanya dapat berisi satuAttributeValue
berjenis String atau Biner (bukan jenis Angka atau set). Atribut target perbandingan harus berjenis String atau Biner (bukan jenis Angka atau set). -
BETWEEN
: Lebih besar dari atau sama dengan nilai pertama, dan kurang dari atau sama dengan nilai kedua.AttributeValueList
harus berisi dua elemenAttributeValue
berjenis yang sama, baik String, Angka, atau Biner (bukan jenis set). Suatu atribut target cocok jika nilai target lebih besar dari, atau sama dengan, elemen pertama dan kurang dari, atau sama dengan, elemen kedua. Jika item berisi elemenAttributeValue
dengan jenis berbeda dari yang disediakan dalam permintaan, nilainya tidak cocok. Misalnya,{"S":"6"}
tidak sebanding dengan{"N":"6"}
. Selain itu,{"N":"6"}
tidak sebanding dengan{"NS":["6", "2", "1"]}
.
-
Gunakan KeyConditionExpressionsebagai gantinya - Contoh
Misalkan Anda ingin mengambil beberapa item dengan kunci partisi yang sama dari tabel Musik. Anda dapat menggunakan Query
permintaan dengan KeyConditions
parameter, seperti dalam AWS CLI contoh ini:
aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist":{ "ComparisonOperator":"EQ", "AttributeValueList": [ {"S": "No One You Know"} ] }, "SongTitle":{ "ComparisonOperator":"BETWEEN", "AttributeValueList": [ {"S": "A"}, {"S": "M"} ] } }'
Anda dapat menggunakan KeyConditionExpression
sebagai gantinya:
aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a AND SongTitle BETWEEN :t1 AND :t2' \ --expression-attribute-values '{ ":a": {"S": "No One You Know"}, ":t1": {"S": "A"}, ":t2": {"S": "M"} }'