

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

# Aspek lain dari bekerja dengan operasi Query di DynamoDB
<a name="Query.Other"></a>

Bagian ini mencakup aspek tambahan dari operasi Query DynamoDB, termasuk membatasi ukuran hasil, menghitung item yang dipindai vs. dikembalikan, memantau konsumsi kapasitas baca, dan mengontrol konsistensi baca.

## Membatasi jumlah item dalam set hasil
<a name="Query.Limit"></a>

Dengan operasi `Query`, Anda dapat membatasi jumlah item yang dibaca. Untuk melakukannya, tetapkan parameter `Limit` ke jumlah maksimum item yang Anda inginkan.

Misalnya, anggaplah bahwa Anda `Query` tabel, dengan nilai `Limit` dari `6`, dan tanpa ekspresi filter. Hasil `Query` berisi enam item pertama dari tabel yang cocok dengan ekspresi kondisi kunci dari permintaan.

Sekarang anggap bahwa Anda menambahkan ekspresi filter ke `Query`. Dalam kasus ini, DynamoDB membaca hingga enam item, lalu hanya mengembalikan item yang cocok dengan ekspresi filter. Hasil `Query` akhir berisi enam item atau lebih sedikit, meskipun lebih banyak item akan cocok dengan ekspresi filter jika DynamoDB terus membaca lebih banyak item.

## Menghitung item dalam hasil
<a name="Query.Count"></a>

Selain item yang sesuai dengan kriteria Anda, respons `Query` berisi elemen berikut:
+ `ScannedCount` — Jumlah item yang cocok dengan ekspresi kondisi kunci *sebelum* ekspresi filter (jika ada) diterapkan.
+ `Count` — Jumlah item yang tersisa *setelah* ekspresi filter (jika ada) diterapkan.

**catatan**  
Jika Anda tidak menggunakan ekspresi filter, `ScannedCount` dan `Count` memiliki nilai yang sama.

Jika ukuran set hasil `Query` lebih besar dari 1 MB, `ScannedCount` dan `Count` mewakili hanya jumlah parsial dari total item. Anda harus melakukan beberapa operasi `Query` untuk mengambil semua hasil (lihat [Hasil query tabel paginasi di DynamoDB](Query.Pagination.md)).

Setiap respons `Query` berisi `ScannedCount` dan `Count` untuk item yang diproses oleh permintaan `Query` khusus. Untuk mendapatkan total keseluruhan untuk semua permintaan `Query`, Anda dapat menyimpan penghitungan `ScannedCount` dan `Count`.

## Unit kapasitas yang digunakan oleh kueri
<a name="Query.CapacityUnits"></a>

Anda dapat melakukan `Query` tabel atau indeks sekunder apa pun, selama Anda memberikan nama atribut kunci partisi dan satu nilai untuk atribut tersebut. `Query` mengembalikan semua item dengan nilai kunci partisi tersebut. Secara opsional, Anda dapat memberikan atribut kunci urutan dan menggunakan operator perbandingan untuk menyaring hasil pencarian. `Query` Operasi API menggunakan unit kapasitas baca, sebagai berikut.


****  

| Jika Anda `Query`... | DynamoDB menggunakan unit kapasitas baca dari... | 
| --- | --- | 
| Tabel | Kapasitas baca yang ditetapkan tabel. | 
| Indeks sekunder global | Kapasitas baca yang ditetapkan indeks. | 
| Indeks sekunder lokal | Kapasitas baca yang ditetapkan tabel dasar. | 

Secara default, operasi `Query` tidak menampilkan data tentang berapa banyak kapasitas baca yang digunakan. Namun, Anda dapat menentukan parameter `ReturnConsumedCapacity` dalam sebuah permintaan `Query` untuk mendapatkan informasi ini. Berikut ini adalah pengaturan yang valid untuk `ReturnConsumedCapacity`:
+ `NONE` — Tidak ada penggunaan data kapasitas yang ditampilkan. (Ini menjadi opsi default.)
+ `TOTAL` — Respons mencakup jumlah agregat unit kapasitas baca yang digunakan.
+ `INDEXES` — Respons menunjukkan jumlah agregat unit kapasitas baca yang digunakan, beserta dengan kapasitas yang digunakan untuk setiap tabel dan indeks yang diakses.

DynamoDB menghitung jumlah unit kapasitas baca yang dikonsumsi berdasarkan jumlah item dan ukuran item tersebut, bukan pada jumlah data yang dikembalikan ke aplikasi. Dengan alasan ini, jumlah unit kapasitas yang digunakan adalah sama, entah Anda meminta semua atribut (perilaku default) atau hanya beberapa dari atribut tersebut (menggunakan ekspresi proyeksi). Jumlahnya juga sama apakah Anda menggunakan ekspresi filter atau tidak. `Query`mengkonsumsi unit kapasitas baca minimum untuk melakukan satu pembacaan yang sangat konsisten per detik, atau dua pembacaan yang konsisten per detik untuk item hingga 4 KB. Jika Anda perlu membaca item yang lebih besar dari 4 KB, DynamoDB memerlukan unit permintaan baca tambahan. Tabel kosong dan tabel yang sangat besar yang memiliki jumlah kunci partisi yang jarang mungkin melihat beberapa tambahan RCUs dibebankan di luar jumlah data yang ditanyakan. Ini mencakup biaya melayani `Query` permintaan, bahkan jika tidak ada data.

## Konsistensi baca untuk kueri
<a name="Query.ReadConsistency"></a>

Operasi `Query` melakukan bacaan akhir konsisten, secara default. Ini berarti bahwa hasil `Query` mungkin tidak mencerminkan perubahan karena operasi `PutItem` atau `UpdateItem` baru saja selesai. Untuk informasi selengkapnya, lihat [DynamoDB membaca konsistensi](HowItWorks.ReadConsistency.md).

Jika Anda memerlukan bacaan sangat konsisten, atur parameter `ConsistentRead` ke `true` dalam permintaan `Query`.