Partager via


Démarrage rapide : Utiliser Azure DocumentDB avec le pilote MongoDB pour Node.js

Dans ce guide de démarrage rapide, vous allez créer une application Azure DocumentDB de base à l’aide de Node.js. Azure DocumentDB est un magasin de données NoSQL qui permet aux applications de stocker des documents dans le cloud et d’y accéder à l’aide de pilotes MongoDB officiels. Ce guide montre comment créer des documents et effectuer des tâches de base dans votre cluster Azure DocumentDB à l’aide de Node.js.

Informations de référence sur | l’APICode source | Package (npm)

Prerequisites

  • Un abonnement Azure

  • Node.js 22 ou version ultérieure

Créer un cluster Azure DocumentDB

Pour commencer, vous devez d’abord créer un cluster Azure DocumentDB, qui sert de base pour le stockage et la gestion de vos données NoSQL.

  1. Connectez-vous au portail Azure (https://portal.azure.com).

  2. Dans le menu du portail Azure ou dans la page d’accueil, sélectionnez Créer une ressource.

  3. Dans la nouvelle page, recherchez et sélectionnez Azure DocumentDB.

    Capture d’écran montrant la recherche d’Azure DocumentDB.

  4. Dans la page Créer un cluster Azure DocumentDB et dans la section Informations de base , sélectionnez l’option Configurer dans la section Niveau cluster .

    Capture d’écran montrant l’option Configurer le cluster.

  5. Dans la page Mise à l’échelle , configurez ces options, puis sélectionnez Enregistrer pour conserver vos modifications au niveau du cluster.

    Valeur
    Niveau de cluster M30 tier, 2 vCore, 8-GiB RAM
    Stockage par partition 128 GiB

    Capture d’écran des options de configuration pour le calcul et le stockage d’un nouveau cluster Azure DocumentDB.

  6. De retour dans la section Informations de base , configurez les options suivantes :

    Valeur
    Subscription Sélectionnez votre abonnement Azure.
    Groupe de ressources Créer un groupe de ressources ou en sélectionner un
    Nom du cluster Fournir un nom globalement unique
    Lieu Sélectionnez une région Azure prise en charge pour votre abonnement
    Version de MongoDB Sélectionnez 8.0
    Nom d'utilisateur administrateur Créer un nom d’utilisateur pour accéder au cluster en tant qu’administrateur utilisateur
    Mot de passe Utiliser un mot de passe unique associé au nom d’utilisateur

    Capture d’écran montrant les paramètres du cluster.

    Conseil / Astuce

    Enregistrez les valeurs que vous utilisez pour le nom d’utilisateur et le mot de passe. Ces valeurs sont utilisées plus loin dans ce guide. Pour plus d’informations sur les valeurs valides, consultez limitations du cluster.

  7. Sélectionnez Suivant : Mise en réseau.

  8. Dans la section Règles de pare-feu de l’onglet Mise en réseau , configurez ces options :

    Valeur
    Méthode de connectivité Public access
    Autoriser l’accès public à partir de services et de ressources Azure au sein d’Azure à ce cluster Activé
  9. Ajoutez une règle de pare-feu pour votre appareil client actuel pour accorder l’accès au cluster en sélectionnant + Ajouter une adresse IP cliente actuelle.

    Capture d’écran montrant les configurations réseau.

    Conseil / Astuce

    Dans de nombreux environnements d’entreprise, les adresses IP de l’ordinateur du développeur sont masquées en raison d’un VPN ou d’autres paramètres réseau d’entreprise. Dans ces cas, vous pouvez autoriser temporairement l’accès à toutes les adresses IP en ajoutant la 0.0.0.0 - 255.255.255.255 plage d’adresses IP en tant que règle de pare-feu. Utilisez cette règle de pare-feu uniquement temporairement dans le cadre du test et du développement de connexions.

  10. Sélectionnez Vérifier + créer.

  11. Passez en revue les paramètres que vous fournissez, puis sélectionnez Créer. La création du cluster ne prend que quelques minutes. Attendez que le déploiement des ressources soit terminé.

  12. Enfin, sélectionnez Accéder à la ressource pour accéder au cluster Azure DocumentDB dans le portail.

Capture d’écran montrant les options de ressource goto.

Obtenir les informations d’identification du cluster

Obtenez les informations d’identification que vous utilisez pour vous connecter au cluster.

  1. Dans la page du cluster, sélectionnez l’option Chaînes de connexion dans le menu de ressources.

  2. Dans la section Chaînes de connexion, copiez ou enregistrez la valeur à partir du champ Chaîne de connexion .

Capture d’écran montrant l’option chaînes de connexion.

Important

La chaîne de connexion dans le portail n’inclut pas la valeur du mot de passe. Vous devez remplacer l’espace <password> réservé par les informations d’identification que vous avez entrées lors de la création du cluster ou entrer le mot de passe de manière interactive.

Initialiser le projet

Créez un projet Node.js dans votre répertoire actif.

  1. Démarrez dans un répertoire vide.

  2. Ouvrez un terminal dans le répertoire actif.

  3. Initialisez un projet Node.js.

    npm init -y
    
  4. Installez TypeScript et initialisez la configuration TypeScript (facultatif pour la prise en charge de TypeScript).

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

Installer la bibliothèque de client

La bibliothèque cliente est disponible via npm, en tant que package mongodb.

  1. Installez le pilote mongoDB Node.js à l’aide de npm.

    npm install mongodb
    
  2. Ouvrez et examinez le fichier package.json pour vérifier que l’entrée de package existe.

  3. Importez les modules requis dans votre code d’application :

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

Modèle d'objet

Nom Descriptif
MongoClient Type utilisé pour se connecter à MongoDB.
Db Représente une base de données dans le cluster.
Collection<Document> Représente une collection au sein d’une base de données dans le cluster.

Exemples de code

Le code de cette application se connecte à une base de données nommée adventureworks et à une collection nommée products. La products collection contient des détails tels que le nom, la catégorie, la quantité, un identificateur unique et un indicateur de vente pour chaque produit. Les exemples de code ici effectuent les opérations les plus courantes lors de l’utilisation d’une collection.

Authentifier le client

Tout d’abord, connectez-vous au client à l’aide d’une chaîne de connexion de base.

  1. Créez la fonction principale et configurez la chaîne de connexion. Remplacez <your-cluster-name>, <your-username>et <your-password> par vos informations de cluster réelles.

    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. Connectez-vous au client MongoDB et vérifiez la connexion.

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

Obtenez une collection

À présent, obtenez votre base de données et votre collection. Si la base de données et la collection n’existent pas déjà, utilisez le pilote pour le créer automatiquement.

  1. Obtenez une référence à la base de données.

            // 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. Obtenez une référence à la collection dans la base de données.

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

Créer un document

Ensuite, créez quelques documents au sein de votre collection. Utilisez la fonction Upsert pour insérer les documents et remplacer tout document existant possédant le même identifiant unique.

  1. Créez des exemples de documents de produit.

            // 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. Insérez les documents en utilisant les opérations d'insertion/mise à jour.

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

Récupérer un document

Ensuite, effectuez une opération de lecture de point pour récupérer un document spécifique à partir de votre collection.

  1. Définissez le filtre pour rechercher un document spécifique par 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. Exécutez la requête et récupérez le résultat.

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

Interroger des documents

Enfin, interrogez plusieurs documents à l’aide du langage de requête MongoDB (MQL).

  1. Définissez une requête pour rechercher des documents correspondant à des critères spécifiques.

            // 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. Effectuez une itération dans les résultats pour afficher les documents correspondants.

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

Explorer vos données à l’aide de Visual Studio Code

Utilisez l’extension DocumentDB dans Visual Studio Code pour effectuer des opérations de base de données principales, notamment l’interrogation, l’insertion, la mise à jour et la suppression de données.

  1. Ouvrez Visual Studio Code.

  2. Accédez à la vue Extensions et recherchez le terme DocumentDB. Recherchez l’extension DocumentDB pour VS Code .

  3. Sélectionnez le bouton Installer pour l’extension. Attendez la fin de l’installation. Rechargez Visual Studio Code si vous y êtes invité.

  4. Accédez à l’extension DocumentDB en sélectionnant l’icône correspondante dans la barre d’activité.

  5. Dans le volet Connexions DocumentDB , sélectionnez + Nouvelle connexion....

  6. Dans la boîte de dialogue, sélectionnez Service Discovery , puis Azure DocumentDB - Azure Service Discovery.

  7. Sélectionnez votre abonnement Azure et votre cluster Azure DocumentDB nouvellement créé.

    Conseil / Astuce

    Dans de nombreux environnements d’entreprise, les adresses IP de l’ordinateur du développeur sont masquées en raison d’un VPN ou d’autres paramètres réseau d’entreprise. Dans ces cas, vous pouvez autoriser temporairement l’accès à toutes les adresses IP en ajoutant la 0.0.0.0 - 255.255.255.255 plage d’adresses IP en tant que règle de pare-feu. Utilisez cette règle de pare-feu uniquement temporairement dans le cadre du test et du développement de connexions. Pour plus d’informations, consultez configurer le pare-feu.

  8. De retour dans le volet Connexions DocumentDB , développez le nœud de votre cluster et accédez à vos nœuds de document et de collection existants.

  9. Ouvrez le menu contextuel de la collection, puis sélectionnez DocumentDB Scrapbook New DocumentDB Scrapbook>.

  10. Entrez les commandes MQL (MongoDB Query Language) suivantes, puis sélectionnez Exécuter tout. Observez la sortie des commandes.

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

Nettoyer les ressources

Lorsque vous avez terminé avec le cluster Azure DocumentDB, vous pouvez supprimer les ressources Azure que vous avez créées afin de ne pas entraîner de frais supplémentaires.

  1. Depuis la barre de recherche du portail Azure, recherchez et sélectionnez Groupes de ressources.

    Capture d’écran montrant l’option permettant de rechercher des groupes de ressources.

  2. Dans la liste, sélectionnez le groupe de ressources utilisé dans ce démarrage rapide.

    Capture d’écran montrant le groupe de ressources.

  3. Sur la page Groupe de ressources, sélectionnez Supprimer un groupe de ressources.

  4. Dans la boîte de dialogue de confirmation de la suppression, entrez le nom du groupe de ressources pour confirmer votre intention de le supprimer. Enfin, sélectionnez Supprimer pour supprimer définitivement le groupe de ressources.

    Capture d’écran montrant le bouton de confirmation de suppression du groupe de ressources.