Bagikan melalui


Mulai menggunakan Azure Cosmos DB untuk MongoDB dan Python

BERLAKU UNTUK: MongoDB

Artikel ini memperlihatkan kepada Anda cara menyambungkan ke Azure Cosmos DB untuk MongoDB menggunakan paket driver PyMongo. Setelah tersambung, Anda dapat melakukan operasi pada database, kontainer, dan item.

Catatan

Contoh cuplikan kode tersedia di GitHub sebagai proyek Python.

Artikel ini menunjukkan kepada Anda cara berkomunikasi dengan API Azure Cosmos DB untuk MongoDB dengan menggunakan salah satu driver klien MongoDB sumber terbuka untuk Python, PyMongo.

Prasyarat

Membuat aplikasi Python baru

  1. Buat folder kosong baru menggunakan terminal pilihan Anda dan ubah direktori ke folder .

    Catatan

    Jika Anda hanya ingin kode yang sudah selesai, unduh atau fork dan kloning contoh cuplikan kode repositori yang memiliki contoh lengkap. Anda juga git clone dapat melakukan repositori di Azure Cloud Shell untuk menelusuri langkah-langkah yang ditunjukkan dalam mulai cepat ini.

  2. Buat file requirements.txt yang mencantumkan paket PyMongo dan python-dotenv . Paket dotenv digunakan untuk membaca variabel lingkungan dari file .env selama pengembangan lokal.

    # requirements.txt
    pymongo
    python-dotenv
    
  3. Buat lingkungan virtual dan instal paket.

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    source .venv/Scripts/activate   
    pip install -r requirements.txt
    

Menyambungkan dengan driver PyMongo ke Azure Cosmos DB untuk MongoDB

Untuk terhubung dengan driver PyMongo ke Azure Cosmos DB, buat instans objek MongoClient . Kelas ini adalah titik awal untuk melakukan semua operasi terhadap database.

Konstruktor yang paling umum untuk MongoClient hanya host memerlukan parameter, yang dalam artikel ini diatur ke COSMOS_CONNECTION_STRING variabel lingkungan. Ada parameter opsional dan parameter kata kunci lain yang dapat Anda gunakan di konstruktor. Banyak parameter opsional juga dapat ditentukan dengan host parameter . Jika opsi yang sama diteruskan dengan host dan sebagai parameter, parameter lebih diutamakan.

Lihat Panduan pemecahan masalah untuk masalah koneksi.

Dapatkan nama sumber daya

Dalam perintah di bawah ini, kami menampilkan msdocs-cosmos sebagai nama grup sumber daya. Ubah nama yang sesuai untuk situasi Anda.

  1. Buat variabel shell untuk resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. Gunakan perintah az cosmosdb list untuk mengambil nama akun Azure Cosmos DB pertama di grup sumber daya Anda dan simpan di variabel shell accountName.

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

Mengambil string koneksi Anda

  1. Temukan API untuk MongoDB string koneksi dari daftar string koneksi untuk akun dengan az cosmosdb keys list perintah .

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Rekam nilai KUNCI PRIMER. Anda akan menggunakan info masuk ini nanti.

Mengonfigurasi variabel lingkungan

Untuk menggunakan nilai STRING KONEKSI dalam kode Anda, atur nilai ini di lingkungan lokal yang menjalankan aplikasi. Untuk mengatur variabel lingkungan, gunakan terminal pilihan Anda untuk menjalankan perintah berikut:

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

Membuat MongoClient dengan string koneksi

  1. Tambahkan dependensi untuk mereferensikan paket PyMongo dan python-dotenv .

    import os
    import sys
    
    import pymongo
    from dotenv import load_dotenv
    
  2. Tentukan instans MongoClient baru kelas menggunakan konstruktor dan string koneksi dibaca dari variabel lingkungan.

    load_dotenv()
    CONNECTION_STRING = os.environ.get("COSMOS_CONNECTION_STRING")
    client = pymongo.MongoClient(CONNECTION_STRING)
    
    for prop, value in vars(client.options).items():
        print("Property: {}: Value: {} ".format(prop, value))
    

Untuk informasi selengkapnya tentang berbagai cara untuk membuat MongoClient instans, lihat Membuat Koneksi dengan MongoClient.

Menutup koneksi MongoClient

Setelah aplikasi Anda selesai dengan koneksi, ingatlah untuk menutupnya. Panggilan .close() itu harus terjasi setelah semua panggilan database dilakukan.

client.close()

Menggunakan kelas klien MongoDB dengan Azure Cosmos DB untuk API untuk MongoDB

Sebelum Anda mulai membangun aplikasi, mari kita lihat hierarki sumber daya di Azure Cosmos DB. Azure Cosmos DB memiliki model objek tertentu yang digunakan untuk membuat dan mengakses sumber daya. Azure Cosmos DB membuat sumber daya dalam hierarki yang terdiri dari akun, database, koleksi, dan dokumen.

Diagram hierarki Azure Cosmos DB for MongoDB termasuk akun, database, koleksi, dan dokumen.

Diagram hierarkis memperlihatkan akun Azure Cosmos DB untuk MongoDB di bagian atas. Akun ini memiliki dua node database turunan. Salah satu node database tersebut memiliki dua node koleksi turunan. Node database lainnya memiliki satu node koleksi turunan. Satu node koleksi tersebut memiliki tiga node dokumen turunan.

Setiap jenis sumber daya diwakili oleh satu atau beberapa kelas Python terkait. Berikut adalah daftar kelas yang paling umum:

  • MongoClient - Langkah pertama saat bekerja dengan PyMongo adalah membuat MongoClient untuk terhubung ke API Azure Cosmos DB untuk MongoDB. Klien ini digunakan untuk mengonfigurasi dan menjalankan permintaan terhadap layanan.

  • Database - API Azure Cosmos DB untuk MongoDB dapat mendukung satu atau beberapa database independen.

  • Koleksi - Database dapat berisi satu atau beberapa koleksi. Koleksi adalah sekelompok dokumen yang disimpan di MongoDB, dan dapat dianggap setara dengan tabel dalam database relasional.

  • Dokumen - Dokumen adalah sekumpulan pasangan kunci-nilai. Dokumen memiliki skema dinamis. Skema dinamis berarti bahwa dokumen dalam koleksi yang sama tidak perlu memiliki kumpulan bidang atau struktur yang sama. Dan bidang umum dalam dokumen koleksi mungkin menyimpan berbagai jenis data.

Untuk mempelajari selengkapnya tentang hierarki entitas, lihat artikel model sumber daya Azure Cosmos DB.

Lihat juga

Langkah berikutnya

Sekarang setelah Anda terhubung ke API untuk akun MongoDB, gunakan panduan berikutnya untuk membuat dan mengelola database.