KeyConditions (warisan) - Amazon DynamoDB

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 pada ComparisonOperator 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 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 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"} }'