

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

# Ekspresi filter untuk operasi Query di DynamoDB
<a name="Query.FilterExpression"></a>

Jika Anda perlu menyempurnakan hasil `Query` lebih lanjut, Anda dapat memberikan ekspresi filter secara opsional. *Ekspresi filter* menentukan item mana dalam hasil `Query` yang harus dikembalikan kepada Anda. Semua hasil lainnya dibuang.

Filter ekspresi diterapkan setelah `Query` selesai, namun sebelum hasilnya dikembalikan. Oleh karena itu, `Query` menggunakan jumlah kapasitas baca yang sama, terlepas dari apakah ada ekspresi filter.

Operasi `Query` dapat mengambil data maksimal 1 MB. Batasan ini berlaku sebelum ekspresi filter dievaluasi.

Filter ekspresi tidak boleh berisi atribut kunci partisi atau kunci urutan. Anda perlu menentukan atribut tersebut dalam ekspresi kondisi kunci, bukan ekspresi filter.

Sintaks untuk ekspresi filter mirip dengan ekspresi kondisi kunci. Ekspresi filter dapat menggunakan pembanding, fungsi, dan operator logika yang sama sebagai ekspresi kondisi utama. Selain itu, ekspresi filter dapat menggunakan operator tak sama dengan `<>`(), operator `OR`, operator `CONTAINS`, operator `IN`, operator `BEGINS_WITH`, operator `BETWEEN`, operator `EXISTS`, dan operator `SIZE`. Untuk informasi selengkapnya, lihat [Ekspresi kondisi kunci untuk operasi Query di DynamoDB](Query.KeyConditionExpressions.md) dan [Sintaks untuk ekspresi filter dan kondisi](Expressions.OperatorsAndFunctions.md#Expressions.OperatorsAndFunctions.Syntax).

**Example**  
 AWS CLI Contoh berikut query `Thread` tabel untuk tertentu `ForumName` (kunci partisi) dan `Subject` (sort key). Dari item yang ditemukan, hanya rangkaian diskusi terpopuler yang dikembalikan—dengan kata lain, hanya rangkaian diskusi yang memiliki jumlah `Views` lebih dari tertentu.  

```
aws dynamodb query \
    --table-name Thread \
    --key-condition-expression "ForumName = :fn and Subject begins_with :sub" \
    --filter-expression "#v >= :num" \
    --expression-attribute-names '{"#v": "Views"}' \
    --expression-attribute-values file://values.json
```
Argumen untuk `--expression-attribute-values` disimpan dalam file `values.json`.  

```
{
    ":fn":{"S":"Amazon DynamoDB"},
    ":sub":{"S":"DynamoDB Thread 1"},
    ":num":{"N":"3"}
}
```
Perhatikan bahwa `Views` adalah kata yang dicadangkan di DynamoDB (lihat [Kata-kata penggunaan khusus di DynamoDB](ReservedWords.md)), sehingga contoh ini menggunakan `#v` sebagai placeholder. Untuk informasi selengkapnya, lihat [Nama atribut ekspresi (alias) di DynamoDB](Expressions.ExpressionAttributeNames.md).

**catatan**  
Ekspresi filter menghapus item dari set hasil `Query`. Jika memungkinkan, hindari penggunaan `Query` saat Anda ingin mengambil item dalam jumlah besar namun juga harus membuang sebagian besar item tersebut.