Megosztás:


Rövid útmutató: Az Azure DocumentDB használata MongoDB-illesztővel a Node.js

Ebben a rövid útmutatóban egy alapszintű Azure DocumentDB-alkalmazást hoz létre Node.jshaszná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 Node.jshasználatával.

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

Előfeltételek

  • Azure-előfizetés

  • Node.js 22 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 Node.js projektet az aktuális könyvtárban.

  1. Kezdje egy üres mappában.

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

  3. Inicializáljon egy Node.js projektet.

    npm init -y
    
  4. Telepítse a TypeScriptet, és inicializálja a TypeScript-konfigurációt (a TypeScript-támogatás nem kötelező).

    npm install -D typescript @types/node
    npx tsc --init
    

Telepítse a klienskönyvtárat

Az ügyfélkódtár az npm-ben érhető el csomagként mongodb .

  1. Telepítse a MongoDB Node.js illesztőprogramot az npm használatával.

    npm install mongodb
    
  2. Nyissa meg és tekintse át a package.json fájlt annak ellenőrzéséhez, hogy a csomagbejegyzés létezik-e.

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

    import { MongoClient, Db, Collection, Document } from 'mongodb';
    
    const { MongoClient } = require('mongodb');
    

Objektummodell

Név Description
MongoClient A MongoDB-hez való csatlakozáshoz használt típus.
Db Egy adatbázist jelöl a klaszterben.
Collection<Document> 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.

    async function main(): Promise<void> {
        // Connection string for Azure DocumentDB cluster
        const connectionString = "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
        const client = new MongoClient(connectionString);
    
    async function main() {
        // Connection string for Azure DocumentDB cluster
        const connectionString = "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
        const client = new MongoClient(connectionString);
    
  2. Csatlakozzon a MongoDB-ügyfélhez, és ellenőrizze a kapcsolatot.

        try {
            // Connect to the MongoDB cluster
            await client.connect();
    
            // Ping the server to verify connection
            await client.db("admin").command({ ping: 1 });
            console.log("Successfully connected and pinged Azure DocumentDB");
    
        try {
            // Connect to the MongoDB cluster
            await client.connect();
    
            // Ping the server to verify connection
            await client.db("admin").command({ ping: 1 });
            console.log("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
            const database: Db = client.db("adventureworks");
            console.log(`Connected to database: ${database.databaseName}`);
    
            // Get database reference
            const database = client.db("adventureworks");
            console.log(`Connected to database: ${database.databaseName}`);
    
  2. Az adatbázison belüli gyűjteményre mutató hivatkozás lekérése.

            // Get collection reference
            const collection: Collection<Document> = database.collection("products");
            console.log("Connected to collection: products");
    
            // Get collection reference
            const collection = database.collection("products");
            console.log("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
            interface Product {
                _id: string;
                name: string;
                category: string;
                quantity: number;
                price: number;
                sale: boolean;
            }
    
            const products: Product[] = [
                {
                    _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,
                }
            ];
    
            // Create sample products
            const 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 (const product of products) {
                const filter = { _id: product._id };
                const options = { upsert: true };
    
                await collection.replaceOne(filter, product, options);
                console.log(`Upserted product: ${product.name}`);
            }
    
            // Insert documents with upsert
            for (const product of products) {
                const filter = { _id: product._id };
                const options = { upsert: true };
    
                await collection.replaceOne(filter, product, options);
                console.log(`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
            const filter = { _id: "00000000-0000-0000-0000-000000004018" };
    
            // Retrieve a specific document by ID
            const filter = { _id: "00000000-0000-0000-0000-000000004018" };
    
  2. Hajtsa végre a lekérdezést, és kérje le az eredményt.

            const retrievedProduct = await collection.findOne(filter);
    
            if (retrievedProduct) {
                console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`);
            } else {
                console.log("Product not found");
            }
    
            const retrievedProduct = await collection.findOne(filter);
    
            if (retrievedProduct) {
                console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`);
            } else {
                console.log("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
            const saleFilter = { sale: true };
            const saleProducts = await collection.find(saleFilter).toArray();
    
            // Query for products on sale
            const saleFilter = { sale: true };
            const saleProducts = await collection.find(saleFilter).toArray();
    
  2. Iterálja végig az eredményeket az egyező dokumentumok megjelenítéséhez.

            console.log("Products on sale:");
            for (const product of saleProducts) {
                console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`);
            }
    
        } catch (error) {
            console.error("An error occurred:", error);
        } finally {
            await client.close();
        }
    }
    
    main().catch(console.error);
    
            console.log("Products on sale:");
            for (const product of saleProducts) {
                console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`);
            }
    
        } catch (error) {
            console.error("An error occurred:", error);
        } finally {
            await client.close();
        }
    }
    
    main().catch(console.error);
    

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.