Partager via


Démarrage rapide : utiliser Azure Cosmos DB for MongoDB (RU) avec Node.js

Dans ce démarrage rapide, vous déployez une application Azure Cosmos DB for MongoDB de base en utilisant Python. Azure Cosmos DB for MongoDB est un magasin de données sans schéma qui permet aux applications de stocker des documents non structurés dans le cloud avec des bibliothèques MongoDB. Vous apprenez à créer des documents et à effectuer des tâches de base au sein de votre ressource Azure Cosmos DB en tirant parti de Python.

Code source de la bibliothèque | Package (npm) | Azure Developer CLI

Prérequis

  • Azure Developer CLI
  • Docker Desktop
  • Node.js 22 ou version ultérieure

Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.

Initialiser le projet

Utilisez l’interface Azure Developer CLI (azd) pour créer un compte Azure Cosmos DB for Table et déployer un exemple d’application conteneurisé. L’exemple d’application utilise la bibliothèque de client pour gérer, créer, lire et interroger des exemples de données.

  1. Ouvrez un terminal dans un répertoire vide.

  2. Si vous n’êtes pas encore authentifié, authentifiez-vous auprès d’Azure Developer CLI à l’aide de azd auth login. Suivez les étapes spécifiées par l’outil pour vous authentifier auprès de l’interface CLI à l’aide de vos informations d’identification Azure préférées.

    azd auth login
    
  3. Utilisez azd init pour initialiser le projet.

    azd init --template cosmos-db-mongodb-nodejs-quickstart
    
  4. Lors de l’initialisation, configurez un nom d’environnement unique.

  5. Déployez le compte Azure Cosmos DB en utilisant azd up. Les modèles Bicep déploient également un exemple d’application web.

    azd up
    
  6. Pendant le processus d’approvisionnement, sélectionnez votre abonnement, l’emplacement souhaité et le groupe de ressources cible. Attendez la fin du processus de provisionnement. Le processus peut prendre environ cinq minutes.

  7. Une fois le provisionnement de vos ressources Azure effectué, une URL vers l’application web en cours d’exécution est incluse dans la sortie.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. Utilisez l’URL dans la console pour accéder à votre application web dans le navigateur. Observez la sortie de l’application en cours d’exécution.

Capture d’écran de l’application web en cours d’exécution.

Capture d’écran de l’application web en cours d’exécution.

Installer la bibliothèque de client

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

  1. Ouvrez un terminal, puis accédez au dossier /src/ts.

    cd ./src/ts
    
  2. S’il n’est pas déjà installé, installez le package mongodb à l’aide de npm install.

    npm install --save mongodb
    
  3. Ouvrez et examinez le fichier src/ts/package.json pour valider l'existence de l'entrée mongodb.

  1. Ouvrez un terminal, puis accédez au dossier /src/js.

    cd ./src/js
    
  2. S’il n’est pas déjà installé, installez le package mongodb à l’aide de npm install.

    npm install --save mongodb
    
  3. Ouvrez et examinez le fichier src/js/package.json pour valider l'existence de l'entrée mongodb.

Modèle objet

Nom Description
MongoClient Type utilisé pour se connecter à MongoDB.
Database Représente une base de données dans le compte.
Collection Représente une collection au sein d’une base de données dans le compte.

Exemples de code

L’exemple de code du modèle utilise une base de données nommée cosmicworks et une collection nommée products. La collection products contient des détails tels que le nom, la catégorie, la quantité et un identificateur unique pour chaque produit. La collection utilise la propriété /category comme clé de partition.

Authentifier le client

Cet exemple crée une instance de type MongoClient.

const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);
const connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

const client = new MongoClient(connectionString);

Obtenir une base de données

Cet exemple crée une instance de type Db à l’aide de la fonction db de type MongoClient.

const database: Db = client.db("<database-name>");
const database = client.db("<database-name>");

Obtention d’une collection

Cet exemple crée une instance de type Collection à l’aide de la fonction collection de type Db.

Cette fonction a un paramètre générique qui utilise le type Product défini dans une interface.

const collection: Collection<Product> = database.collection<Product>("<collection-name>");
export interface Product {
    _id: string;
    category: string;
    name: string;
    quantity: number;
    price: number;
    clearance: boolean;
}
const collection = database.collection("<collection-name>");

Créer un document

Créez un document dans la collection en utilisant collection.updateOne. Cette méthode fait un « upsert » de l’élément en le remplaçant de manière effective s’il existe déjà.

var document: Product = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

var query: Filter<Product> = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
var payload: UpdateFilter<Product> = {
    $set: document
};
var options: UpdateOptions = {
    upsert: true
};
var response: UpdateResult<Product> = await collection.updateOne(query, payload, options);
var document = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards',
    name: 'Yamba Surfboard',
    quantity: 12,
    price: 850.00,
    clearance: false
};

const query = {
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    category: 'gear-surf-surfboards'
};
const payload = {
    $set: document
};
const options = {
    upsert: true,
    new: true
};
var response = await collection.updateOne(query, payload, options);

Lire un document

Effectuez une opération de lecture de point en utilisant les champs d’identificateur unique (id) et de clé de partition. Utilisez collection.findOne pour récupérer efficacement l’élément spécifique.

var query: Filter<Product> = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response: WithId<Product> | null = await collection.findOne(query);
var query = { 
    _id: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb', 
    category: 'gear-surf-surfboards' 
};

var response = await collection.findOne(query);

Interroger des documents

Effectuez une requête sur plusieurs éléments d’un conteneur à l’aide de collection.find. Cette requête trouve tous les éléments au sein d’une catégorie spécifiée (clé de partition).

var query: Filter<Product> = { 
    category: 'gear-surf-surfboards' 
};

var response: FindCursor<WithId<Product>> = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}
var query = { 
    category: 'gear-surf-surfboards' 
};

var response = await collection.find(query);
for await (const item of response) {
    // Do something with each item
}

Exploration de vos données

Utilisez l’extension Visual Studio Code pour Azure Cosmos DB afin d’explorer vos données MongoDB. Vous pouvez effectuer des opérations de base de données de base, y compris, mais sans s’y limiter :

  • Exécution de requêtes en tirant parti d’un album ou de l’éditeur de requête
  • Modification, mise à jour, création et suppression de documents
  • Importation de données en bloc à partir d’autres sources
  • Gestion de bases de données et de collections

Pour découvrir plus d’informations, consultez Comment utiliser l’extension Visual Studio Code pour explorer des données Azure Cosmos DB for MongoDB.

Nettoyer les ressources

Lorsque vous n’avez plus besoin de l’exemple d’application ou de ressources, supprimez le déploiement correspondant et toutes les ressources.

azd down