Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Important
Apakah Anda ingin memigrasikan aplikasi MongoDB yang sudah ada atau menggunakan fitur MongoDB Query Language (MQL)? Pertimbangkan Azure DocumentDB.
Apakah Anda mencari solusi database untuk skenario skala tinggi dengan perjanjian tingkat layanan ketersediaan (SLA) 99,999%, skala otomatis instan, dan failover otomatis di beberapa wilayah? Pertimbangkan Azure Cosmos DB untuk NoSQL.
Dalam panduan cepat ini, Anda akan menyebarkan aplikasi dasar Azure Cosmos DB for MongoDB dengan 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.
Kode sumber pustaka | Paket (npm) | Azure Developer CLI
Prerequisites
- 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.
Buka terminal di direktori kosong.
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 loginGunakan
azd inituntuk menginisialisasi proyek.azd init --template cosmos-db-mongodb-nodejs-quickstartSelama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up. Templat Bicep juga mengimplementasikan aplikasi web sampel.azd upSelama 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.
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.Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.
Memasang pustaka klien
Pustaka klien tersedia melalui npm, sebagai mongodb paket.
Buka terminal dan navigasi ke
/src/tsfolder .cd ./src/tsJika belum diinstal, instal
mongodbpaket menggunakannpm install.npm install --save mongodbBuka dan tinjau file src/ts/package.json untuk memvalidasi bahwa entri
mongodbada.
Buka terminal dan navigasi ke
/src/jsfolder .cd ./src/jsJika belum diinstal, instal
mongodbpaket menggunakannpm install.npm install --save mongodbBuka dan tinjau file src/js/package.json untuk memvalidasi bahwa entri
mongodbtersebut ada.
Mengimpor pustaka
Impor MongoClient jenis ke dalam kode aplikasi Anda.
import { MongoClient } from 'mongodb';
Impor semua jenis yang diperlukan ke dalam kode aplikasi Anda.
import { Collection, Db, Filter, FindCursor, MongoClient, UpdateFilter, UpdateOptions, UpdateResult, WithId } from 'mongodb';
Model objek
| Name | Description |
|---|---|
MongoClient |
Jenis yang digunakan untuk menyambungkan ke MongoDB. |
Database |
Mewakili database di akun. |
Collection |
Mewakili koleksi dalam database di akun. |
Contoh kode
- Autentikasi klien
- Mendapatkan database
- Dapatkan koleksi
- Membuat dokumen
- Mendapatkan dokumen
- Dokumen Permintaan Informasi
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 pembagi.
Mengautentikasi klien
Sampel ini membuat instance baru dari 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);
Akses database
Sampel ini membuat instans dari tipe Db menggunakan fungsi db dari tipe MongoClient.
const database: Db = client.db("<database-name>");
const database = client.db("<database-name>");
Dapatkan koleksi
Sampel ini membuat instans dari tipe Collection menggunakan fungsi collection dari tipe Db.
Fungsi ini memiliki parameter generik yang menggunakan tipe Product yang 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 secara efektif melakukan "upsert" pada item, menggantinya jika item tersebut 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 pembacaan per 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);
Pencarian dokumen
Lakukan kueri melalui beberapa item dalam kontainer menggunakan collection.find. Kueri ini menemukan semua item dalam kategori tertentu (shard key).
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 fitur scrapbook atau editor kueri
- Memodifikasi, memperbarui, membuat, dan menghapus dokumen
- Mengimpor data massal dari sumber lain
- Mengelola database dan koleksi
Untuk informasi selengkapnya, lihat Panduan untuk menggunakan ekstensi Visual Studio Code untuk menjelajahi Azure Cosmos DB bagi data MongoDB.
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan aplikasi contoh atau sumber daya, hapus penerapan dan semua sumber daya yang terkait.
azd down --force --purge