

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

# KeyConditions (warisan)
<a name="LegacyConditionalParameters.KeyConditions"></a>

**catatan**  
Kami menyarankan agar Anda menggunakan parameter ekspresi yang baru, bukan parameter warisan ini, jika memungkinkan. Untuk informasi selengkapnya, lihat [Menggunakan ekspresi di DynamoDB](Expressions.md). Untuk informasi spesifik tentang parameter baru sebagai pengganti untuk yang satu ini, [gunakan *KeyConditionExpression*sebagai gantinya.](#KeyConditionExpression.instead). 

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 pada `ComparisonOperator` yang sedang digunakan.

  Untuk jenis Angka, perbandingan nilainya bersifat numerik.

  Perbandingan nilai string untuk lebih besar dari, sama dengan, atau kurang dari didasarkan pada Unicode dengan UTF-8 encoding biner. Sebagai contoh, `a` lebih besar dari `A`, dan `a` lebih besar dari `B`.

  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 satu `AttributeValue` berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemen `AttributeValue` 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 elemen `AttributeValue` berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemen `AttributeValue` 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 satu `AttributeValue` berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemen `AttributeValue` 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 elemen `AttributeValue` berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemen `AttributeValue` 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 elemen `AttributeValue` berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi elemen `AttributeValue` 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 satu `AttributeValue` 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 elemen `AttributeValue` 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 elemen `AttributeValue` 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 *KeyConditionExpression*sebagai gantinya - Contoh
<a name="KeyConditionExpression.instead"></a>

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"}
    }'
```