View a markdown version of this page

Mengkueri dan Memindai Tabel DynamoDB - AWS SDK untuk JavaScript

AWS SDK untuk JavaScript V2 telah mencapai akhir dukungan. Kami menyarankan Anda bermigrasi ke AWS SDK untuk JavaScript v3. Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat pengumuman ini.

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

Mengkueri dan Memindai Tabel DynamoDB

JavaScript code example that applies to Node.js execution

Contoh Node.js kode ini menunjukkan:

  • Cara menanyakan dan memindai tabel DynamoDB untuk item.

Skenario

Kueri menemukan item dalam tabel atau indeks sekunder hanya menggunakan nilai atribut kunci utama. Anda harus memberikan nama kunci partisi dan nilai yang akan dicari. Anda juga dapat memberikan nama dan nilai kunci pengurutan, dan menggunakan operator perbandingan untuk menyempurnakan hasil pencarian. Pemindaian menemukan item dengan memeriksa setiap item dalam tabel yang ditentukan.

Dalam contoh ini, Anda menggunakan serangkaian Node.js modul untuk mengidentifikasi satu atau lebih item yang ingin Anda ambil dari tabel DynamoDB. Kode menggunakan SDK untuk menanyakan dan JavaScript memindai tabel menggunakan metode kelas klien DynamoDB berikut:

Tugas Prasyarat

Untuk mengatur dan menjalankan contoh ini, pertama-tama selesaikan tugas-tugas ini:

Melakukan Kueri Tabel

Contoh ini menanyakan tabel yang berisi informasi episode tentang seri video, mengembalikan judul episode dan subtitle episode musim kedua setelah episode 9 yang berisi frasa tertentu dalam subtitle mereka.

Buat Node.js modul dengan nama fileddb_query.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses DynamoDB, buat objek AWS.DynamoDB layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menanyakan tabel, yang dalam contoh ini mencakup nama tabel, yang ExpressionAttributeValues dibutuhkan oleh kueri, KeyConditionExpression yang menggunakan nilai-nilai tersebut untuk menentukan item mana yang dikembalikan kueri, dan nama-nama nilai atribut yang akan dikembalikan untuk setiap item. Panggil query metode objek layanan DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": { N: "2" }, ":e": { N: "09" }, ":topic": { S: "PHRASE" }, }, KeyConditionExpression: "Season = :s and Episode > :e", ProjectionExpression: "Episode, Title, Subtitle", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; ddb.query(params, function (err, data) { if (err) { console.log("Error", err); } else { //console.log("Success", data.Items); data.Items.forEach(function (element, index, array) { console.log(element.Title.S + " (" + element.Subtitle.S + ")"); }); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node ddb_query.js

Kode sampel ini dapat ditemukan di sini GitHub.

Memindai Tabel

Buat Node.js modul dengan nama fileddb_scan.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses DynamoDB, buat objek AWS.DynamoDB layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk memindai tabel untuk item, yang dalam contoh ini mencakup nama tabel, daftar nilai atribut yang akan dikembalikan untuk setiap item yang cocok, dan ekspresi untuk memfilter set hasil untuk menemukan item yang berisi frasa tertentu. Panggil scan metode objek layanan DynamoDB.

// Load the AWS SDK for Node.js. var AWS = require("aws-sdk"); // Set the AWS Region. AWS.config.update({ region: "REGION" }); // Create DynamoDB service object. var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); const params = { // Specify which items in the results are returned. FilterExpression: "Subtitle = :topic AND Season = :s AND Episode = :e", // Define the expression attribute value, which are substitutes for the values you want to compare. ExpressionAttributeValues: { ":topic": { S: "SubTitle2" }, ":s": { N: 1 }, ":e": { N: 2 }, }, // Set the projection expression, which are the attributes that you want. ProjectionExpression: "Season, Episode, Title, Subtitle", TableName: "EPISODES_TABLE", }; ddb.scan(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); data.Items.forEach(function (element, index, array) { console.log( "printing", element.Title.S + " (" + element.Subtitle.S + ")" ); }); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node ddb_scan.js

Kode sampel ini dapat ditemukan di sini GitHub.