Sdílet prostřednictvím


Rychlý start: Použití Azure DocumentDB s ovladačem MongoDB pro Node.js

V tomto rychlém startu vytvoříte základní aplikaci Azure DocumentDB pomocí Node.js. Azure DocumentDB je úložiště dat NoSQL, které umožňuje aplikacím ukládat dokumenty v cloudu a přistupovat k nim pomocí oficiálních ovladačů MongoDB. Tento průvodce ukazuje, jak vytvářet dokumenty a provádět základní úlohy v clusteru Azure DocumentDB pomocí Node.js.

Referenční informace k | rozhraní APIZdrojový kód | Balíček (npm)

Požadavky

  • Předplatné Azure

  • Node.js 22 nebo novější

Vytvoření clusteru Azure DocumentDB

Abyste mohli začít, musíte nejprve vytvořit cluster Azure DocumentDB, který slouží jako základ pro ukládání a správu dat NoSQL.

  1. Přihlaste se k webu Azure Portal (https://portal.azure.com).

  2. V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.

  3. Na stránce Nový vyhledejte a vyberte Azure DocumentDB.

    Snímek obrazovky znázorňující hledání Azure DocumentDB

  4. Na stránce Vytvořit cluster Azure DocumentDB a v části Základy vyberte možnost Konfigurovat v části Vrstva clusteru .

    Snímek obrazovky znázorňující možnost Konfigurovat cluster

  5. Na stránce Škálování nakonfigurujte tyto možnosti a pak výběrem možnosti Uložit uložte změny na úrovni clusteru.

    Hodnota
    Úroveň clusteru M30 tier, 2 vCore, 8-GiB RAM
    Úložiště pro shard 128 GiB

    Snímek obrazovky s možnostmi konfigurace pro výpočetní prostředky a úložiště pro nový cluster Azure DocumentDB

  6. Zpět v části Základy nakonfigurujte následující možnosti:

    Hodnota
    Subscription Výběr předplatného Azure
    Skupina zdrojů Vytvoření nové skupiny prostředků nebo výběr existující skupiny prostředků
    Název clusteru Zadejte globálně jedinečný název.
    Location Vyberte podporovanou oblast Azure pro vaše předplatné.
    Verze MongoDB Vyberte 8.0
    Uživatelské jméno správce Vytvoření uživatelského jména pro přístup ke clusteru jako správce uživatele
    Heslo Použití jedinečného hesla přidruženého k uživatelskému jménu

    Snímek obrazovky zobrazující parametry clusteru

    Návod

    Poznamenejte si hodnoty, které používáte pro uživatelské jméno a heslo. Tyto hodnoty se používají dále v tomto průvodci. Další informace o platných hodnotách najdete v tématu Omezení clusteru.

  7. Vyberte Další: Sítě.

  8. V části Pravidla brány firewall na kartě Sítě nakonfigurujte tyto možnosti:

    Hodnota
    Metoda připojení Public access
    Povolit veřejný přístup ze služeb a prostředků Azure v rámci Azure k tomuto clusteru Enabled
  9. Přidáním pravidla brány firewall pro aktuální klientské zařízení udělte přístup ke clusteru výběrem + Přidat aktuální IP adresu klienta.

    Snímek obrazovky znázorňující konfigurace sítě

    Návod

    V mnoha podnikových prostředích jsou IP adresy vývojářských počítačů skryté kvůli nastavení sítě VPN nebo jiné podnikové sítě. V těchto případech můžete dočasně povolit přístup ke všem IP adresám přidáním rozsahu 0.0.0.0 - 255.255.255.255 IP adres jako pravidla brány firewall. Toto pravidlo brány firewall používejte pouze dočasně jako součást testování a vývoje připojení.

  10. Vyberte možnost Zkontrolovat a vytvořit.

  11. Zkontrolujte nastavení, která zadáte, a pak vyberte Vytvořit. Vytvoření clusteru bude trvat několik minut. Počkejte na dokončení nasazení prostředků.

  12. Nakonec vyberte Přejít k prostředku a přejděte na cluster Azure DocumentDB v portálu.

Snímek obrazovky znázorňující možnosti prostředku goto

Získání přihlašovacích údajů clusteru

Získejte přihlašovací údaje, které používáte pro připojení ke clusteru.

  1. Na stránce clusteru vyberte v nabídce prostředků možnost Připojovací řetězce .

  2. V části Připojovací řetězce zkopírujte nebo poznamenejte hodnotu z pole Připojovací řetězec .

Snímek obrazovky znázorňující možnost připojovacích řetězců

Důležité

Připojovací řetězec na portálu neobsahuje hodnotu hesla. Zástupný symbol musíte nahradit <password> přihlašovacími údaji, které jste zadali při vytváření clusteru, nebo interaktivně zadat heslo.

Inicializace projektu

V aktuálním adresáři vytvořte nový projekt Node.js.

  1. Začněte v prázdném adresáři.

  2. Otevřete terminál v aktuálním adresáři.

  3. Inicializace projektu Node.js

    npm init -y
    
  4. Nainstalujte TypeScript a inicializujte konfiguraci TypeScriptu (volitelné pro podporu TypeScriptu).

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

Instalace klientské knihovny

Klientská knihovna je k dispozici prostřednictvím npm jako mongodb balíček.

  1. Nainstalujte ovladač Node.js MongoDB pomocí npm.

    npm install mongodb
    
  2. Otevřete a zkontrolujte soubor package.json a ověřte, že položka balíčku existuje.

  3. Naimportujte požadované moduly do kódu aplikace:

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

Objektový model

Název Description
MongoClient Typ použitý pro připojení k MongoDB.
Db Představuje databázi v clusteru.
Collection<Document> Představuje kolekci v rámci databáze v clusteru.

Příklady kódu

Kód v této aplikaci se připojí k databázi pojmenované adventureworks a kolekci s názvem products. Kolekce products obsahuje podrobnosti, jako je název, kategorie, množství, jedinečný identifikátor a příznak prodeje pro každý produkt. Zde uvedené ukázky kódu provádějí nejběžnější operace při práci s kolekcí.

Ověření klienta

Nejprve se připojte k klientovi pomocí základního připojovacího řetězce.

  1. Vytvořte hlavní funkci a nastavte připojovací řetězec. Nahraďte <your-cluster-name>, <your-username> a <your-password> vašimi skutečnými informacemi o clusteru.

    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. Připojte se k klientovi MongoDB a ověřte připojení.

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

Získání kolekce

Teď získejte databázi a kolekci. Pokud databáze a kolekce ještě neexistují, pomocí ovladače ji vytvořte automaticky.

  1. Získejte odkaz na databázi.

            // 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. Získejte odkaz na kolekci v databázi.

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

Vytvoření dokumentu

Pak v kolekci vytvořte několik nových dokumentů. Vložte dokumenty, aby se zajistilo, že nahradí všechny existující dokumenty, pokud již existují se stejným jedinečným identifikátorem.

  1. Vytvořte ukázkové dokumenty produktů.

            // 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. Vložte dokumenty pomocí operací upsert.

            // 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}`);
            }
    

Načtení dokumentu

Dále proveďte operaci čtení bodu, která načte konkrétní dokument z kolekce.

  1. Definujte filtr pro vyhledání konkrétního dokumentu podle ID.

            // 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. Spusťte dotaz a načtěte výsledek.

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

Dotazování na dokumenty

Nakonec dotazujte více dokumentů pomocí dotazovacího jazyka MongoDB (MQL).

  1. Definujte dotaz pro vyhledání dokumentů odpovídajících konkrétním kritériím.

            // 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. Iterujte výsledky a zobrazte odpovídající dokumenty.

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

Prozkoumání dat pomocí editoru Visual Studio Code

Pomocí rozšíření DocumentDB v editoru Visual Studio Code můžete provádět základní databázové operace, včetně dotazování, vkládání, aktualizace a odstraňování dat.

  1. Otevřete Visual Studio Code.

  2. Přejděte do zobrazení Rozšíření a vyhledejte termín DocumentDB. Vyhledejte rozšíření DocumentDB pro VS Code.

  3. Vyberte tlačítko Instalovat pro rozšíření. Počkejte na dokončení instalace. Pokud se zobrazí výzva, znovu načtěte Visual Studio Code.

  4. Výběrem odpovídající ikony na panelu aktivit přejděte na rozšíření DocumentDB .

  5. V podokně Připojení DocumentDB vyberte + Nové připojení....

  6. V dialogovém okně vyberte Zjišťování služeb a pak Azure DocumentDB – Azure Service Discovery.

  7. Vyberte své předplatné Azure a nově vytvořený cluster Azure DocumentDB.

    Návod

    V mnoha podnikových prostředích jsou IP adresy vývojářských počítačů skryté kvůli nastavení sítě VPN nebo jiné podnikové sítě. V těchto případech můžete dočasně povolit přístup ke všem IP adresám přidáním rozsahu 0.0.0.0 - 255.255.255.255 IP adres jako pravidla brány firewall. Toto pravidlo brány firewall používejte pouze dočasně jako součást testování a vývoje připojení. Další informace najdete v tématu konfigurace brány firewall.

  8. V podokně Připojení DocumentDB najděte uzel vašeho clusteru a rozbalte jej, poté přejděte k vašim existujícím uzlům dokumentů a kolekcí.

  9. Otevřete místní nabídku kolekce a pak vyberte DocumentDB Scrapbook<0/> Nový DocumentDB Scrapbook.

  10. Zadejte následující příkazy jazyka MongoDB Query Language (MQL) a pak vyberte Spustit vše. Sledujte výstup z příkazů.

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

Vyčistěte zdroje

Až budete hotovi s clusterem Azure DocumentDB, můžete odstranit prostředky Azure, které jste vytvořili, takže vám nebudou účtovány další poplatky.

  1. Na panelu hledání na webu Azure Portal vyhledejte a vyberte skupiny prostředků.

    Snímek obrazovky znázorňující možnost vyhledávání skupin prostředků

  2. V seznamu vyberte skupinu prostředků, kterou jste použili pro účely tohoto rychlého startu.

    Snímek obrazovky znázorňující skupinu prostředků

  3. Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.

  4. V potvrzovací dialogovém okně odstranění zadejte název skupiny prostředků, abyste potvrdili, že ji chcete odstranit. Nakonec vyberte Odstranit a trvale odstraňte skupinu prostředků.

    Snímek obrazovky s tlačítkem pro potvrzení odstranění skupiny prostředků.