Partager via


Démarrage rapide : Utiliser Azure DocumentDB avec le pilote MongoDB pour C#

Dans ce guide de démarrage rapide, vous allez créer une application Azure DocumentDB de base à l’aide de C#. 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 C#.

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

Prerequisites

  • Un abonnement Azure

  • .NET 10.0 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 de l’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 d’application console .NET dans votre répertoire actif.

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

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

  3. Créez une application console .NET.

    dotnet new console
    
  4. Compilez le projet pour vous assurer qu’il a été créé correctement.

    dotnet build
    

Installer la bibliothèque de client

La bibliothèque cliente est disponible via NuGet, en tant que package MongoDB.Driver.

  1. Installez le pilote .NET MongoDB à l’aide du gestionnaire de package NuGet.

    dotnet add package MongoDB.Driver
    
  2. Ouvrez et passez en revue le fichier azure-documentdb-dotnet-quickstart.csproj pour vérifier que la référence du package existe.

  3. Importez les espaces de noms requis dans votre code d’application :

    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using MongoDB.Bson;
    using MongoDB.Bson.Serialization.Attributes;
    using MongoDB.Driver;
    

Modèle d'objet

Nom Descriptif
MongoClient Type utilisé pour se connecter à MongoDB.
IMongoDatabase Représente une base de données dans le cluster.
IMongoCollection<T> 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 méthode principale et configurez la chaîne de connexion. Remplacez <your-cluster-name>, <your-username>et <your-password> par vos informations de cluster réelles.

    class Program
    {
        static async Task Main(string[] args)
        {
            // Connection string for Azure DocumentDB cluster
            string 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 MongoDB client settings
            var settings = MongoClientSettings.FromConnectionString(connectionString);
    
  2. Créez le client MongoDB et vérifiez la connexion.

            // Create a new client and connect to the server
            var client = new MongoClient(settings);
    
            // Ping the server to verify connection
            var database = client.GetDatabase("admin");
            var pingCommand = new BsonDocument("ping", 1);
            await database.RunCommandAsync<BsonDocument>(pingCommand);
    
            Console.WriteLine("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
            var adventureWorksDatabase = client.GetDatabase("adventureworks");
            Console.WriteLine($"Connected to database: {adventureWorksDatabase.DatabaseNamespace.DatabaseName}");
    
  2. Obtenez une référence à la collection dans la base de données.

            // Get collection reference
            var productsCollection = adventureWorksDatabase.GetCollection<Product>("products");
            Console.WriteLine($"Connected to collection: products");
    

Créer un document

Ensuite, créez quelques documents au sein de votre collection. Faites un upsert des documents pour garantir qu'ils remplacent tout document existant s’ils existent déjà avec le même identifiant unique.

  1. Définissez une classe Product et créez des exemples de documents de produit.

            // Create sample products
            var products = new List<Product>
            {
                new Product
                {
                    Id = "00000000-0000-0000-0000-000000004018",
                    Name = "Windry Mittens",
                    Category = "apparel-accessories-gloves-and-mittens",
                    Quantity = 121,
                    Price = 35.00m,
                    Sale = false
                },
                new Product
                {
                    Id = "00000000-0000-0000-0000-000000004318",
                    Name = "Niborio Tent",
                    Category = "gear-camp-tents",
                    Quantity = 140,
                    Price = 420.00m,
                    Sale = true
                }
            };
    
  2. Insérez les documents à l’aide d’opérations upsert.

            // Insert documents with upsert
            foreach (var product in products)
            {
                var filter = Builders<Product>.Filter.Eq(p => p.Id, product.Id);
                var options = new ReplaceOptions { IsUpsert = true };
    
                await productsCollection.ReplaceOneAsync(filter, product, options);
                Console.WriteLine($"Upserted product: {product.Name}");
            }
    
  3. Ajoutez la définition de classe Product à la fin de votre fichier Program.cs.

    public class Product
    {
        [BsonId]
        [BsonElement("_id")]
        public string Id { get; set; }
    
        [BsonElement("name")]
        public string Name { get; set; }
    
        [BsonElement("category")]
        public string Category { get; set; }
    
        [BsonElement("quantity")]
        public int Quantity { get; set; }
    
        [BsonElement("price")]
        public decimal Price { get; set; }
    
        [BsonElement("sale")]
        public bool Sale { get; set; }
    }
    

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
            var filter = Builders<Product>.Filter.Eq(p => p.Id, "00000000-0000-0000-0000-000000004018");
    
  2. Exécutez la requête et récupérez le résultat.

            var retrievedProduct = await productsCollection.Find(filter).FirstOrDefaultAsync();
    
            if (retrievedProduct != null)
            {
                Console.WriteLine($"Retrieved product: {retrievedProduct.Name} - ${retrievedProduct.Price}");
            }
            else
            {
                Console.WriteLine("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
            var saleFilter = Builders<Product>.Filter.Eq(p => p.Sale, true);
            var saleProducts = await productsCollection.Find(saleFilter).ToListAsync();
    
  2. Effectuez une itération dans les résultats pour afficher les documents correspondants.

            Console.WriteLine("Products on sale:");
            foreach (var product in saleProducts)
            {
                Console.WriteLine($"- {product.Name}: ${product.Price:F2} (Category: {product.Category})");
            }
        }
    }
    

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.