Bagikan melalui


Mulai cepat: Menggunakan Azure DocumentDB dengan driver MongoDB untuk Python

Dalam panduan memulai cepat ini, Anda membuat aplikasi Azure Cosmos DB (sebelumnya dikenal sebagai DocumentDB) dasar menggunakan Python. Azure DocumentDB adalah penyimpanan data NoSQL yang memungkinkan aplikasi menyimpan dokumen di cloud dan mengaksesnya menggunakan driver MongoDB resmi. Panduan ini memperlihatkan cara membuat dokumen dan melakukan tugas dasar di kluster Azure DocumentDB Anda menggunakan Python.

Referensi | APIKode sumber | Paket (PyPI)

Prasyarat

  • Langganan Azure

    • Jika Anda tidak memiliki langganan Azure, buat akun gratis
  • Python 3.12 atau yang lebih baru

Membuat kluster Azure DocumentDB

Untuk memulai, Pertama-tama Anda perlu membuat kluster Azure DocumentDB, yang berfungsi sebagai fondasi untuk menyimpan dan mengelola data NoSQL Anda.

  1. Masuk ke portal Microsoft Azure (https://portal.azure.com).

  2. Pada menu portal Microsoft Azure atau halaman Beranda, pilih Buat sumber daya.

  3. Pada halaman Baru , cari dan pilih Azure DocumentDB.

    Cuplikan layar memperlihatkan pencarian Azure DocumentDB.

  4. Pada halaman Buat kluster Azure DocumentDB dan di dalam bagian Dasar , pilih opsi Konfigurasi di dalam bagian Tingkat kluster .

    Cuplikan layar memperlihatkan opsi Konfigurasikan kluster.

  5. Pada halaman Skala , konfigurasikan opsi ini lalu pilih Simpan untuk mempertahankan perubahan Anda ke tingkat kluster.

    Nilai
    Tingkat kluster M30 tier, 2 vCore, 8-GiB RAM
    Penyimpanan per pecahan 128 GiB

    Cuplikan layar opsi konfigurasi untuk komputasi dan penyimpanan untuk kluster Azure DocumentDB baru.

  6. Kembali ke bagian Dasar , konfigurasikan opsi berikut:

    Nilai
    Subscription Pilih langganan Azure Anda
    grup Sumber Daya Membuat grup sumber daya baru atau memilih grup sumber daya yang sudah ada
    Nama kluster Berikan nama yang unik secara global
    Tempat Pilih wilayah Azure yang didukung untuk langganan Anda
    Versi MongoDB Pilih 8.0
    Nama pengguna admin Membuat nama pengguna untuk mengakses kluster sebagai administrator pengguna
    Password Menggunakan kata sandi unik yang terkait dengan nama pengguna

    Cuplikan layar memperlihatkan parameter kluster.

    Petunjuk / Saran

    Catat nilai yang Anda gunakan untuk nama pengguna dan kata sandi. Nilai-nilai ini digunakan nanti dalam panduan ini. Untuk informasi selengkapnya tentang nilai yang valid, lihat batasan kluster.

  7. Pilih Berikutnya: Jaringan.

  8. Di bagian Aturan firewall pada tab Jaringan, konfigurasikan opsi ini:

    Nilai
    Metode konektivitas Public access
    Izinkan akses publik dari layanan dan sumber daya Azure dalam Azure ke kluster ini Enabled
  9. Tambahkan aturan firewall untuk perangkat klien Anda saat ini untuk memberikan akses ke kluster dengan memilih + Tambahkan alamat IP klien saat ini.

    Cuplikan layar memperlihatkan konfigurasi jaringan.

    Petunjuk / Saran

    Di banyak lingkungan perusahaan, alamat IP komputer pengembang disembunyikan karena VPN atau pengaturan jaringan perusahaan lainnya. Dalam kasus ini, Anda dapat mengizinkan akses untuk sementara ke semua alamat IP dengan menambahkan 0.0.0.0 - 255.255.255.255 rentang alamat IP sebagai aturan firewall. Gunakan aturan firewall ini hanya sementara sebagai bagian dari pengujian dan pengembangan koneksi.

  10. Pilih Tinjau + kreasikan.

  11. Tinjau pengaturan yang Anda berikan, kemudian pilih Buat. Perlu waktu beberapa menit untuk membuat kluster tersebut. Tunggu penyebaran sumber daya selesai.

  12. Terakhir, pilih Buka sumber daya untuk menavigasi ke kluster Azure DocumentDB di portal.

Cuplikan layar memperlihatkan opsi sumber daya goto.

Mendapatkan kredensi kluster

Dapatkan kredensial yang Anda gunakan untuk menyambungkan ke kluster.

  1. Pada halaman kluster, pilih opsi String koneksi di menu sumber daya.

  2. Di bagian String koneksi , salin atau rekam nilai dari bidang String koneksi .

Cuplikan layar memperlihatkan opsi string koneksi.

Penting

String koneksi di portal tidak menyertakan nilai kata sandi. Anda harus mengganti <password> tempat penampung dengan kredensial yang Anda masukkan saat membuat kluster atau memasukkan kata sandi secara interaktif.

Menginisialisasi proyek

Buat proyek Python baru dan siapkan lingkungan virtual di direktori Anda saat ini.

  1. Mulai di direktori kosong.

  2. Buka terminal di direktori saat ini.

  3. Membuat dan mengaktifkan lingkungan virtual.

    python -m venv venv
    venv\Scripts\activate
    

Memasang pustaka klien

Pustaka klien tersedia melalui PyPI, sebagai pymongo paket.

  1. Instal driver MongoDB Python menggunakan pip.

    pip install pymongo
    
  2. Buat file Python baru bernama main.py untuk kode aplikasi Anda.

  3. Impor modul yang diperlukan ke dalam kode aplikasi Anda:

    from pymongo import MongoClient
    from pymongo.errors import ConnectionFailure
    import sys
    

Model objek

Nama Description
MongoClient Jenis yang digunakan untuk menyambungkan ke MongoDB.
Database Mewakili database dalam kluster.
Collection Mewakili koleksi dalam database dalam kluster.

Contoh kode

Kode dalam aplikasi ini tersambung ke database bernama adventureworks dan koleksi bernama products. Koleksi products berisi detail seperti nama, kategori, kuantitas, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Contoh kode di sini melakukan operasi yang paling umum saat bekerja dengan kumpulan.

Mengautentikasi klien

Pertama, sambungkan ke klien menggunakan string koneksi dasar.

  1. Buat fungsi utama dan siapkan string koneksi. Ganti <your-cluster-name>, <your-username>, dan <your-password> dengan informasi kluster Anda yang sebenarnya.

    def main():
        try:
            # Connection string for Azure DocumentDB cluster
            connection_string = "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
            # Create a new client and connect to the server
            client = MongoClient(connection_string)
    
  2. Sambungkan ke klien MongoDB dan verifikasi koneksi.

            # Ping the server to verify connection
            client.admin.command('ping')
            print("Successfully connected and pinged Azure DocumentDB")
    

Dapatkan koleksi

Sekarang, dapatkan database dan koleksi Anda. Jika database dan koleksi belum ada, gunakan driver untuk membuatnya secara otomatis.

  1. Dapatkan referensi ke database.

            # Get database reference
            database = client["adventureworks"]
            print(f"Connected to database: {database.name}")
    
  2. Dapatkan referensi ke koleksi dalam database.

            # Get collection reference
            collection = database["products"]
            print("Connected to collection: products")
    

Buat dokumen

Kemudian, buat beberapa dokumen baru dalam koleksi Anda. Melakukan operasi upsert pada dokumen untuk memastikan bahwa dokumen tersebut mengganti dokumen yang ada jika dokumen dengan pengidentifikasi unik yang sama sudah ada.

  1. Buat contoh dokumen produk.

            # Create sample products
            products = [
                {
                    "_id": "00000000-0000-0000-0000-000000004018",
                    "name": "Windry Mittens",
                    "category": "apparel-accessories-gloves-and-mittens",
                    "quantity": 121,
                    "price": 35.00,
                    "sale": False,
                },
                {
                    "_id": "00000000-0000-0000-0000-000000004318",
                    "name": "Niborio Tent",
                    "category": "gear-camp-tents",
                    "quantity": 140,
                    "price": 420.00,
                    "sale": True,
                }
            ]
    
  2. Sisipkan dokumen menggunakan operasi upsert.

            # Insert documents with upsert
            for product in products:
                filter_doc = {"_id": product["_id"]}
                collection.replace_one(filter_doc, product, upsert=True)
                print(f"Upserted product: {product['name']}")
    

Mengambil dokumen

Selanjutnya, lakukan operasi pembacaan titik data untuk mengambil sebuah dokumen tertentu dari koleksi Anda.

  1. Tentukan filter untuk menemukan dokumen tertentu menurut ID.

            # Retrieve a specific document by ID
            filter_doc = {"_id": "00000000-0000-0000-0000-000000004018"}
    
  2. Jalankan kueri dan ambil hasilnya.

            retrieved_product = collection.find_one(filter_doc)
    
            if retrieved_product:
                print(f"Retrieved product: {retrieved_product['name']} - ${retrieved_product['price']}")
            else:
                print("Product not found")
    

Melakukan kueri pada dokumen

Terakhir, kueri beberapa dokumen menggunakan MongoDB Query Language (MQL).

  1. Tentukan kueri untuk menemukan dokumen yang cocok dengan kriteria tertentu.

            # Query for products on sale
            sale_filter = {"sale": True}
            sale_products = list(collection.find(sale_filter))
    
  2. Telusuri hasilnya untuk menampilkan dokumen yang cocok.

            print("Products on sale:")
            for product in sale_products:
                print(f"- {product['name']}: ${product['price']:.2f} (Category: {product['category']})")
    
        except ConnectionFailure as e:
            print(f"Could not connect to MongoDB: {e}")
            sys.exit(1)
        except Exception as e:
            print(f"An error occurred: {e}")
            sys.exit(1)
        finally:
            client.close()
    
    if __name__ == "__main__":
        main()
    

Menjelajahi data Anda menggunakan Visual Studio Code

Gunakan ekstensi DocumentDB di Visual Studio Code untuk melakukan operasi database inti, termasuk mengkueri, menyisipkan, memperbarui, dan menghapus data.

  1. Buka Visual Studio Code.

  2. Navigasi ke tampilan Ekstensi dan cari istilah DocumentDB. Temukan ekstensi DocumentDB untuk Visual Studio Code .

  3. Pilih tombol Instal untuk ekstensi. Tunggu hingga penginstalan selesai. Muat ulang Visual Studio Code jika diminta.

  4. Navigasikan ke ekstensi DocumentDB dengan memilih ikon terkait di Bilah Aktivitas.

  5. Di panel Koneksi DocumentDB , pilih + Koneksi Baru....

  6. Dalam dialog, pilih Penemuan Layanan lalu Azure DocumentDB - Azure Service Discovery.

  7. Pilih langganan Azure Anda dan kluster Azure DocumentDB yang baru dibuat.

    Petunjuk / Saran

    Di banyak lingkungan perusahaan, alamat IP komputer pengembang disembunyikan karena VPN atau pengaturan jaringan perusahaan lainnya. Dalam kasus ini, Anda dapat mengizinkan akses untuk sementara ke semua alamat IP dengan menambahkan 0.0.0.0 - 255.255.255.255 rentang alamat IP sebagai aturan firewall. Gunakan aturan firewall ini hanya sementara sebagai bagian dari pengujian dan pengembangan koneksi. Untuk informasi selengkapnya, lihat mengonfigurasi firewall.

  8. Kembali ke panel Koneksi DocumentDB , perluas simpul untuk kluster Anda dan navigasikan ke dokumen dan simpul koleksi yang sudah ada.

  9. Buka menu konteks untuk koleksi lalu pilih DocumentDB Scrapbook > New DocumentDB Scrapbook.

  10. Masukkan perintah MongoDB Query Language (MQL) berikut lalu pilih Jalankan Semua. Perhatikan hasil keluaran dari perintah.

    db.products.find({
      price: { $gt: 200 },
      sale: true
    })
    .sort({ price: -1 })
    .limit(3)
    

Membersihkan sumber daya

Setelah selesai dengan kluster Azure DocumentDB, Anda dapat menghapus sumber daya Azure yang Anda buat sehingga Anda tidak dikenakan lebih banyak biaya.

  1. Di bilah pencarian portal Azure, cari dan pilih Grup sumber daya.

    Cuplikan layar memperlihatkan opsi untuk mencari grup sumber daya.

  2. Dalam daftar, pilih grup sumber daya yang Anda gunakan untuk panduan memulai cepat ini.

    Cuplikan layar memperlihatkan grup sumber daya.

  3. Pada halaman grup sumber daya, pilih Hapus grup sumber daya.

  4. Dalam dialog konfirmasi penghapusan, masukkan nama grup sumber daya untuk mengonfirmasi bahwa Anda ingin menghapusnya. Terakhir, pilih Hapus untuk menghapus grup sumber daya secara permanen.

    Cuplikan layar memperlihatkan tombol konfirmasi hapus grup sumber daya.