Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kueri
Dokumen pemetaan Query
permintaan memungkinkan Anda memberi tahu AWS AppSync DynamoDB resolver untuk membuat Query
permintaan ke DynamoDB, dan memungkinkan Anda untuk menentukan hal berikut:
-
Ekspresi kunci
-
Indeks mana yang akan digunakan
-
Filter tambahan
-
Berapa banyak item yang akan dikembalikan
-
Apakah akan menggunakan pembacaan yang konsisten
-
arah kueri (maju atau mundur)
-
Token pagination
Dokumen Query
pemetaan memiliki struktur sebagai berikut:
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "some expression", "expressionNames" : { "#foo" : "foo" }, "expressionValues" : { ":bar" : ... typed value } }, "index" : "fooIndex", "nextToken" : "a pagination token", "limit" : 10, "scanIndexForward" : true, "consistentRead" : false, "select" : "ALL_ATTRIBUTES" | "ALL_PROJECTED_ATTRIBUTES" | "SPECIFIC_ATTRIBUTES", "filter" : { ... }, "projection" : { ... } }
Bidang didefinisikan sebagai berikut:
Bidang kueri
-
version
-
Versi definisi template.
2017-02-28
dan2018-05-29
saat ini didukung. Nilai ini diperlukan. -
operation
-
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi
Query
DynamoDB, ini harus diatur ke.Query
Nilai ini diperlukan. -
query
-
query
Bagian ini memungkinkan Anda menentukan ekspresi kondisi kunci yang menjelaskan item mana yang akan diambil dari DynamoDB. Untuk informasi selengkapnya tentang cara menulis ekspresi kondisi kunci, lihat dokumentasi DynamoDB KeyConditions . Bagian ini harus ditentukan.-
expression
-
Ekspresi kueri. Bidang ini harus ditentukan.
-
expressionNames
-
Substitusi untuk placeholder nama atribut ekspresi, dalam bentuk pasangan kunci-nilai. Kunci sesuai dengan placeholder nama yang digunakan dalam
expression
, dan nilainya harus berupa string yang sesuai dengan nama atribut item di DynamoDB. Bidang ini bersifat opsional, dan seharusnya hanya diisi dengan substitusi untuk placeholder nama atribut ekspresi yang digunakan dalam.expression
-
expressionValues
-
Substitusi untuk placeholder nilai atribut ekspresi, dalam bentuk pasangan kunci-nilai. Kunci sesuai dengan placeholder nilai yang digunakan dalam
expression
, dan nilainya harus berupa nilai yang diketik. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Mengetik sistem (pemetaan permintaan). Nilai ini diperlukan. Bidang ini bersifat opsional, dan seharusnya hanya diisi dengan substitusi untuk placeholder nilai atribut ekspresi yang digunakan dalam.expression
-
-
filter
-
Filter tambahan yang dapat digunakan untuk memfilter hasil dari DynamoDB sebelum dikembalikan. Untuk informasi selengkapnya tentang filter, lihat Menyaring. Bidang ini bersifat opsional.
-
index
-
Nama indeks untuk query. Operasi query DynamoDB memungkinkan Anda untuk memindai Indeks Sekunder Lokal dan Indeks Sekunder Global selain indeks kunci utama untuk kunci hash. Jika ditentukan, ini memberitahu DynamoDB untuk query indeks tertentu. Jika dihilangkan, indeks kunci utama ditanyakan.
-
nextToken
-
Token pagination untuk melanjutkan kueri sebelumnya. Ini akan diperoleh dari kueri sebelumnya. Bidang ini bersifat opsional.
-
limit
-
Jumlah maksimum item untuk dievaluasi (tidak selalu merupakan jumlah item yang cocok). Bidang ini bersifat opsional.
-
scanIndexForward
-
Boolean yang menunjukkan apakah akan melakukan kueri maju atau mundur. Bidang ini opsional, dan defaultnya.
true
-
consistentRead
-
Boolean yang menunjukkan apakah akan menggunakan pembacaan yang konsisten saat menanyakan DynamoDB. Bidang ini opsional, dan defaultnya.
false
-
select
-
Secara default, AWS AppSync DynamoDB resolver hanya mengembalikan atribut yang diproyeksikan ke dalam indeks. Jika lebih banyak atribut diperlukan, Anda dapat mengatur bidang ini. Bidang ini bersifat opsional. Nilai yang didukung adalah:
-
ALL_ATTRIBUTES
-
Mengembalikan semua atribut item dari tabel tertentu atau indeks. Jika Anda menanyakan indeks sekunder lokal, DynamoDB mengambil seluruh item dari tabel induk untuk setiap item yang cocok dalam indeks. Jika indeks dikonfigurasi untuk memproyeksikan semua atribut item, semua data dapat diperoleh dari indeks sekunder lokal dan tidak diperlukan pengambilan.
-
ALL_PROJECTED_ATTRIBUTES
-
Diizinkan hanya saat menanyakan indeks. Mengambil semua atribut yang telah diproyeksikan ke dalam indeks. Jika indeks dikonfigurasi untuk memproyeksikan semua atribut, nilai pengembalian ini setara dengan menentukan
ALL_ATTRIBUTES
. SPECIFIC_ATTRIBUTES
-
Mengembalikan hanya atribut yang tercantum dalam
projection
'sexpression
. Nilai pengembalian ini setara dengan menentukanprojection
'sexpression
tanpa menentukan nilai apa pun untuk.Select
-
projection
-
Proyeksi yang digunakan untuk menentukan atribut yang akan dikembalikan dari operasi DynamoDB. Untuk informasi selengkapnya tentang proyeksi, lihat Proyeksi. Bidang ini bersifat opsional.
Hasil dari DynamoDB secara otomatis diubah menjadi GraphQL dan tipe primitif JSON dan tersedia dalam konteks pemetaan (). $context.result
Untuk informasi selengkapnya tentang konversi tipe DynamoDB, lihat Mengetik sistem (pemetaan respons).
Untuk informasi selengkapnya tentang template pemetaan respons, lihat Ringkasan template pemetaan Resolver.
Hasilnya memiliki struktur sebagai berikut:
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }
Bidang didefinisikan sebagai berikut:
-
items
-
Daftar yang berisi item yang dikembalikan oleh query DynamoDB.
-
nextToken
-
Jika mungkin ada lebih banyak hasil,
nextToken
berisi token pagination yang dapat Anda gunakan dalam permintaan lain. Perhatikan bahwa AWS AppSync mengenkripsi dan mengaburkan token pagination yang dikembalikan dari DynamoDB. Ini mencegah data tabel Anda bocor secara tidak sengaja ke penelepon. Perhatikan juga bahwa token pagination ini tidak dapat digunakan di berbagai resolver. -
scannedCount
-
Jumlah item yang cocok dengan ekspresi kondisi kueri, sebelum ekspresi filter (jika ada) diterapkan.
Contoh
Contoh berikut adalah template pemetaan untuk query GraphQL. getPosts(owner:
ID!)
Dalam contoh ini, indeks sekunder global pada tabel ditanyakan untuk mengembalikan semua posting yang dimiliki oleh ID yang ditentukan.
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "ownerId = :ownerId", "expressionValues" : { ":ownerId" : $util.dynamodb.toDynamoDBJson($context.arguments.owner) } }, "index" : "owner-index" }
Untuk informasi selengkapnya tentang DynamoDB, lihat Query
API dokumentasi DynamoDB. API