Bagikan melalui


Mulai cepat: Menggunakan Azure Cosmos DB untuk MongoDB (RU) dengan Node.js

Dalam mulai cepat ini, Anda menyebarkan aplikasi Azure Cosmos DB for MongoDB dasar menggunakan Python. Azure Cosmos DB for MongoDB adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan dokumen yang tidak terstruktur di cloud dengan pustaka MongoDB. Anda mempelajari cara membuat dokumen dan melakukan tugas dasar dalam sumber daya Azure Cosmos DB Anda menggunakan Python.

Paket kode | sumber pustaka (npm) | Azure Developer CLI

Prasyarat

  • Azure Developer CLI
  • Desktop Docker
  • Node.js 22 atau yang lebih baru

Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

Menginisialisasi proyek

Gunakan Azure Developer CLI (azd) untuk membuat akun Azure Cosmos DB for Table dan menyebarkan aplikasi sampel kontainer. Aplikasi sampel menggunakan pustaka klien untuk mengelola, membuat, membaca, dan mengkueri data sampel.

  1. Buka terminal di direktori kosong.

  2. Jika Anda belum diautentikasi, autentikasi ke Azure Developer CLI menggunakan azd auth login. Ikuti langkah-langkah yang ditentukan oleh alat untuk mengautentikasi ke CLI menggunakan kredensial Azure pilihan Anda.

    azd auth login
    
  3. Gunakan azd init untuk menginisialisasi proyek.

    azd init --template cosmos-db-mongodb-nodejs-quickstart
    
  4. Selama inisialisasi, konfigurasikan nama lingkungan yang unik.

  5. Sebarkan akun Azure Cosmos DB menggunakan azd up. Templat Bicep juga menyebarkan aplikasi web sampel.

    azd up
    
  6. Selama proses provisi, pilih langganan Anda, lokasi yang diinginkan, dan grup sumber daya target. Tunggu hingga proses provisi selesai. Prosesnya dapat memakan waktu sekitar lima menit.

  7. Setelah provisi sumber daya Azure Anda selesai, URL ke aplikasi web yang sedang berjalan disertakan dalam output.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.

Cuplikan layar aplikasi web yang sedang berjalan.

Cuplikan layar aplikasi web yang sedang berjalan.

Memasang pustaka klien

Pustaka klien tersedia melalui npm, sebagai mongodb paket.

  1. Buka terminal dan navigasi ke /src/ts folder .

    cd ./src/ts
    
  2. Jika belum diinstal, instal mongodb paket menggunakan npm install.

    npm install --save mongodb
    
  3. Buka dan tinjau file src/ts/package.json untuk memvalidasi bahwa entri ada mongodb .

  1. Buka terminal dan navigasi ke /src/js folder .

    cd ./src/js
    
  2. Jika belum diinstal, instal mongodb paket menggunakan npm install.

    npm install --save mongodb
    
  3. Buka dan tinjau file src/js/package.json untuk memvalidasi bahwa entri ada mongodb .

Model objek

Nama Deskripsi
MongoClient Jenis yang digunakan untuk menyambungkan ke MongoDB.
Database Mewakili database di akun.
Collection Mewakili koleksi dalam database di akun.

Contoh kode

Kode sampel dalam templat menggunakan database bernama cosmicworks dan koleksi bernama products. Koleksi products berisi detail seperti nama, kategori, kuantitas, dan pengidentifikasi unik untuk setiap produk. Koleksi menggunakan /category properti sebagai kunci shard.

Mengautentikasi klien

Sampel ini membuat instans baru jenis.MongoClient

const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);
const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);

Mendapatkan database

Sampel ini membuat instans jenis Db menggunakan db fungsi jenis MongoClient .

const database: Db = client.db("<database-name>");
const database = client.db("<database-name>");

Mendapatkan koleksi

Sampel ini membuat instans jenis Collection menggunakan collection fungsi jenis Db .

Fungsi ini memiliki parameter generik yang menggunakan jenis yang Product ditentukan dalam antarmuka.

const collection: Collection<Product> = database.collection<Product>("<collection-name>");
export interface Product {
    _id: string;
    category: string;
    name: string;
    quantity: number;
    price: number;
    clearance: boolean;
}
const collection = database.collection("<collection-name>");

Buat dokumen

Buat dokumen dalam koleksi menggunakan collection.updateOne. Metode ini "upsert" item secara efektif mengganti item jika sudah ada.

var document: Product = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

var query: Filter<Product> = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
var payload: UpdateFilter<Product> = {
    $set: document
};
var options: UpdateOptions = {
    upsert: true
};
var response: UpdateResult<Product> = await collection.updateOne(query, payload, options);
var document = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

const query = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
const payload = {
    $set: document
};
const options = {
    upsert: true,
    new: true
};
var response = await collection.updateOne(query, payload, options);

Baca dokumen

Lakukan operasi baca titik dengan menggunakan bidang pengidentifikasi unik (id) dan kunci shard. Gunakan collection.findOne untuk mengambil item tertentu secara efisien.

var query: Filter<Product> = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response: WithId<Product> | null = await collection.findOne(query);
var query = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response = await collection.findOne(query);

Meminta dokumen

Lakukan kueri melalui beberapa item dalam kontainer menggunakan collection.find. Kueri ini menemukan semua item dalam kategori tertentu (kunci shard).

var query: Filter<Product> = { 
    category: 'gear-surf-surfboards' 
};

var response: FindCursor<WithId<Product>> = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}
var query = { 
    category: 'gear-surf-surfboards' 
};

var response = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}

Jelajahi sampel Anda

Gunakan ekstensi Visual Studio Code untuk Azure Cosmos DB untuk menjelajahi data MongoDB Anda. Anda dapat melakukan operasi database inti termasuk, tetapi tidak terbatas pada:

  • Melakukan kueri menggunakan scrapbook atau editor kueri
  • Memodifikasi, memperbarui, membuat, dan menghapus dokumen
  • Mengimpor data massal dari sumber lain
  • Mengelola database dan koleksi

Untuk informasi selengkapnya, lihat Cara menggunakan ekstensi Visual Studio Code untuk menjelajahi data Azure Cosmos DB for MongoDB.

Membersihkan sumber daya

Saat Anda tidak lagi memerlukan aplikasi sampel atau sumber daya, hapus penyebaran dan semua sumber daya yang sesuai.

azd down