Megosztás:


Rövid útmutató: Az Azure DocumentDB használata a Pythonhoz készült MongoDB-illesztőprogrammal

Ebben a rövid útmutatóban egy alapszintű Azure DocumentDB-alkalmazást hoz létre a Python használatával. Az Azure DocumentDB egy NoSQL-adattár, amellyel az alkalmazások a felhőben tárolhatják a dokumentumokat, és hivatalos MongoDB-illesztőprogramokkal érhetik el őket. Ez az útmutató bemutatja, hogyan hozhat létre dokumentumokat, és hogyan hajthat végre alapvető feladatokat az Azure DocumentDB-fürtben a Python használatával.

API-referencia | Forráskód | Csomag (PyPI)

Előfeltételek

  • Azure-előfizetés

  • Python 3.12 vagy újabb

Hozzon létre egy Azure DocumentDB-fürtöt

Első lépésként létre kell hoznia egy Azure DocumentDB-fürtöt, amely a NoSQL-adatok tárolásának és kezelésének alapja.

  1. Jelentkezzen be az Azure Portalra (https://portal.azure.com).

  2. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.

  3. Az Új lapon keresse meg és válassza ki az Azure DocumentDB-t.

    Képernyőkép az Azure DocumentDB keresésről.

  4. Az Azure DocumentDB-fürt létrehozása oldal Alapok szakaszában válassza a Fürtszint szakaszban a Konfigurálás lehetőséget.

    Képernyőkép a fürt konfigurálása opcióról.

  5. A Méretezés lapon konfigurálja ezeket a beállításokat, majd válassza a Mentés lehetőséget a fürtszintre vonatkozó módosítások megőrzéséhez.

    Érték
    Fürtszint M30 tier, 2 vCore, 8-GiB RAM
    Tárterület szegmensenként 128 GiB

    Képernyőkép egy új Azure DocumentDB-fürt számítási és tárolási beállításairól.

  6. Az Alapok szakaszban konfigurálja a következő beállításokat:

    Érték
    Subscription Az Azure-előfizetés kiválasztása
    Erőforráscsoport Új erőforráscsoport létrehozása vagy meglévő erőforráscsoport kiválasztása
    Fürt neve Globálisan egyedi név megadása
    Location Válasszon egy támogatott Azure-régiót az előfizetéséhez
    MongoDB-verzió A következők szerint válasszon: 8.0
    Rendszergazdai felhasználónév Felhasználónév létrehozása a fürt felhasználói rendszergazdaként való eléréséhez
    Jelszó A felhasználónévhez társított egyedi jelszó használata

    Képernyőkép a fürtparaméterekről.

    Jótanács

    Jegyezze fel a felhasználónévhez és jelszóhoz használt értékeket. Ezeket az értékeket az útmutató későbbi részében használjuk. Az érvényes értékekkel kapcsolatos további információkért tekintse meg a fürt korlátait.

  7. Válassza ki a Tovább: Hálózatkezelés lehetőséget.

  8. A Hálózatkezelés lap Tűzfalszabályok szakaszában konfigurálja az alábbi beállításokat:

    Érték
    Kapcsolati módszer Public access
    Nyilvános hozzáférés engedélyezése az Azure-ban lévő Azure-szolgáltatásokból és erőforrásokból ehhez a fürthöz Engedélyezett
  9. Adjon hozzá egy tűzfalszabályt a jelenlegi klienseszközhöz, hogy hozzáférést biztosítson a fürthöz a + Jelenlegi kliens IP-cím hozzáadása lehetőség kiválasztásával.

    Képernyőkép a hálózati konfigurációkról.

    Jótanács

    Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az 0.0.0.0 - 255.255.255.255 IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként.

  10. Válassza az Áttekintés + létrehozás lehetőséget.

  11. Tekintse át a megadott beállításokat, majd kattintson a Létrehozás-ra. A klaszter létrehozása néhány percet vesz igénybe. Várjon, amíg az erőforrás üzembe helyezése befejeződött.

  12. Végül válassza a Menjen az erőforráshoz lehetőséget, hogy navigáljon az Azure DocumentDB-fürthöz a portálon.

Képernyőkép a goto-erőforrás beállításairól.

Szerezze be a fürt hitelesítő adatait

Szerezd be a fürthöz való csatlakozáshoz használt hitelesítő adatokat.

  1. A fürtoldalon válassza a Kapcsolati láncokat lehetőséget az erőforrás menüjében.

  2. A Kapcsolati sztringek szakaszban másolja vagy rögzítse a Kapcsolati sztring mező értékét.

Képernyőkép a kapcsolati karakterláncok opcióról.

Fontos

A portál kapcsolati sztringje nem tartalmazza a jelszó értékét. A <password> helyettesítő szöveget le kell cserélnie a fürt létrehozásakor megadott hitelesítő adatokkal, vagy interaktívan be kell írnia a jelszót.

A projekt inicializálása

Hozzon létre egy új Python-projektet, és állítson be egy virtuális környezetet az aktuális címtárban.

  1. Kezdje egy üres mappában.

  2. Nyisson egy terminált az aktuális könyvtárban.

  3. Virtuális környezet létrehozása és aktiválása.

    python -m venv venv
    venv\Scripts\activate
    

Telepítse a klienskönyvtárat

Az ügyfélkönyvtár a pymongo csomagként a PyPI-n keresztül érhető el.

  1. Telepítse a MongoDB Python-illesztőt pip használatával.

    pip install pymongo
    
  2. Hozzon létre egy új Python-fájlt az alkalmazáskódhoz.main.py

  3. Importálja a szükséges modulokat az alkalmazáskódba:

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

Objektummodell

Név Description
MongoClient A MongoDB-hez való csatlakozáshoz használt típus.
Database Egy adatbázist jelöl a klaszterben.
Collection Egy adatbázison belüli gyűjteményt jelöl a fürtben.

Példakódok

Az alkalmazás kódja egy elnevezett adventureworks adatbázishoz és egy nevű productsgyűjteményhez csatlakozik. A products gyűjtemény olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. Az itt található kódminták a leggyakoribb műveleteket hajtják végre a gyűjtemények használatakor.

Az ügyfél hitelesítése

Először csatlakozzon az ügyfélhez egy egyszerű kapcsolati sztring használatával.

  1. Hozza létre a fő függvényt, és állítsa be a kapcsolati sztringet. Cserélje le <your-cluster-name>, <your-username> és <your-password> a tényleges fürtinformációkkal.

    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. Csatlakozzon a MongoDB-ügyfélhez, és ellenőrizze a kapcsolatot.

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

Gyűjtemény lekérése

Most szerezze be az adatbázist és a gyűjteményt. Ha az adatbázis és a gyűjtemény még nem létezik, az illesztővel automatikusan létrehozhatja.

  1. Az adatbázisra mutató hivatkozás lekérése.

            # Get database reference
            database = client["adventureworks"]
            print(f"Connected to database: {database.name}")
    
  2. Az adatbázison belüli gyűjteményre mutató hivatkozás lekérése.

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

Dokumentum létrehozása

Ezután hozzon létre néhány új dokumentumot a gyűjteményben. A dokumentumokat úgy állíthatja be, hogy az lecserélje a meglévő dokumentumokat, ha már léteznek ugyanazzal az egyedi azonosítóval.

  1. Mintatermék-dokumentumok létrehozása.

            # 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. Helyezze be a dokumentumokat "upsert" műveletek használatával.

            # 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']}")
    

Dokumentum lekérése

Ezután végezzen pontolvasási műveletet egy adott dokumentum gyűjteményből való lekéréséhez.

  1. Adja meg a szűrőt egy adott dokumentum azonosító alapján való megkereséséhez.

            # Retrieve a specific document by ID
            filter_doc = {"_id": "00000000-0000-0000-0000-000000004018"}
    
  2. Hajtsa végre a lekérdezést, és kérje le az eredményt.

            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")
    

Dokumentumok lekérdezése

Végül több dokumentumot is lekérdezhet a MongoDB lekérdezési nyelv (MQL) használatával.

  1. Lekérdezés definiálása adott feltételeknek megfelelő dokumentumok megkereséséhez.

            # Query for products on sale
            sale_filter = {"sale": True}
            sale_products = list(collection.find(sale_filter))
    
  2. Iterálja végig az eredményeket az egyező dokumentumok megjelenítéséhez.

            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()
    

Adatok felfedezése a Visual Studio Code használatával

A Visual Studio Code DocumentDB bővítményével alapvető adatbázis-műveleteket hajthat végre, beleértve az adatok lekérdezését, beszúrását, frissítését és törlését.

  1. Nyissa meg a Visual Studio Code-ot.

  2. Lépjen a Bővítmények nézetre, és keresse meg a kifejezést DocumentDB. Keresse meg a DocumentDB for VS Code bővítményt .

  3. Válassza a bővítmény Telepítés gombját. Várja meg, amíg a telepítés befejeződik. Töltse újra a Visual Studio kódot, ha erre felszólítják.

  4. Lépjen a DocumentDB bővítményre a tevékenységsáv megfelelő ikonjának kiválasztásával.

  5. A DocumentDB-kapcsolatok panelen válassza az + Új kapcsolat... lehetőséget.

  6. A párbeszédpanelen válassza a Service Discovery , majd az Azure DocumentDB – Azure Service Discovery lehetőséget.

  7. Válassza ki az Azure-előfizetését és az újonnan létrehozott Azure DocumentDB-fürtöt.

    Jótanács

    Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az 0.0.0.0 - 255.255.255.255 IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként. További információ: tűzfal konfigurálása.

  8. Visszatérve a DocumentDB-kapcsolatok panelre, bontsa ki a fürt csomópontját, és keresse meg a meglévő dokumentum- és gyűjteménycsomópontokat.

  9. Nyissa meg a gyűjtemény helyi menüjét, majd válassza a DocumentDB Scrapbook > New DocumentDB Scrapbook lehetőséget.

  10. Adja meg a következő MongoDB lekérdezési nyelv (MQL) parancsokat, majd válassza az Összes futtatása lehetőséget. Figyelje meg a parancsok kimenetét.

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

Erőforrások tisztítása

Ha végzett az Azure DocumentDB-fürttel, törölheti a létrehozott Azure-erőforrásokat, így nem kell további díjakat fizetnie.

  1. Az Azure Portal keresősávján keresse meg és válassza ki az erőforráscsoportokat.

    Képernyőkép az erőforráscsoportok keresésének lehetőségről.

  2. A listában válassza ki a rövid útmutatóhoz használt erőforráscsoportot.

    Képernyőkép az erőforráscsoportról.

  3. Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.

  4. A törlés megerősítését kérő párbeszédpanelen adja meg az erőforráscsoport nevét annak megerősítéséhez, hogy törölni kívánja azt. Végül válassza a Törlés lehetőséget az erőforráscsoport végleges törléséhez.

    Képernyőkép az erőforráscsoport törlésének megerősítését kérő gombról.