View a markdown version of this page

Penyaring - AWS AppSync GraphQL

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

Penyaring

Saat menanyakan objek di DynamoDB menggunakan Scan operasi Query dan, Anda dapat secara opsional menentukan a filter yang mengevaluasi hasil dan mengembalikan hanya nilai yang diinginkan.

Properti filter dari Scan permintaan Query atau memiliki struktur sebagai berikut:

type DynamoDBExpression = { expression: string; expressionNames?: { [key: string]: string}; expressionValues?: { [key: string]: any}; };

Bidang didefinisikan sebagai berikut:

expression

Ekspresi query. Untuk informasi selengkapnya tentang cara menulis ekspresi filter, lihat dokumentasi DynamoDB QueryFilter dan Dynam ScanFilter oDB. Bidang ini harus ditentukan.

expressionNames

Substitusi untuk placeholder nama atribut ekspresi, dalam bentuk pasangan kunci-nilai. Kuncinya sesuai dengan placeholder nama yang digunakan di. expression Nilai harus berupa string yang sesuai dengan nama atribut item di DynamoDB. Bidang ini opsional, dan hanya boleh diisi dengan substitusi untuk placeholder nama atribut ekspresi yang digunakan di. expression

expressionValues

Substitusi untuk placeholder nilai atribut ekspresi, dalam bentuk pasangan kunci-nilai. Kunci sesuai dengan placeholder nilai yang digunakan diexpression, dan nilainya harus berupa nilai yang diketik. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Sistem tipe (pemetaan permintaan). Ini harus ditentukan. Bidang ini opsional, dan hanya boleh diisi dengan substitusi untuk placeholder nilai atribut ekspresi yang digunakan di. expression

Contoh

Contoh berikut adalah bagian filter untuk permintaan, di mana entri yang diambil dari DynamoDB hanya dikembalikan jika judul dimulai dengan argumen. title

Di sini kita menggunakan util.transform.toDynamoDBFilterExpression untuk secara otomatis membuat filter dari objek:

const filter = util.transform.toDynamoDBFilterExpression({ title: { beginsWith: 'far away' }, }); const request = {}; request.filter = JSON.parse(filter);

Ini menghasilkan filter berikut:

{ "filter": { "expression": "(begins_with(#title,:title_beginsWith))", "expressionNames": { "#title": "title" }, "expressionValues": { ":title_beginsWith": { "S": "far away" } } } }