Erste Schritte mit Azure Cosmos DB für MongoDB mit JavaScript

ANWENDBAR AUF: Mongodb

Important

Möchten Sie eine vorhandene MongoDB-Anwendung migrieren oder MongoDB Query Language (MQL)-Features verwenden? Betrachten Sie Azure DocumentDB.

Suchen Sie nach einer Datenbanklösung für hochskalige Szenarien mit einer Vereinbarung über verfügbarkeitsbasierte Servicelevels (Service Level Agreement, SLA) von 99,999% Verfügbarkeit, sofortige Automatische Skalierung und automatisches Failover über mehrere Regionen hinweg? Erwägen Sie Azure Cosmos DB für NoSQL.

In diesem Artikel erfahren Sie, wie Sie mithilfe des nativen MongoDB npm-Pakets eine Verbindung mit Azure Cosmos DB für MongoDB herstellen. Sobald die Verbindung hergestellt ist, können Sie Vorgänge für Datenbanken, Sammlungen und Dokumente ausführen.

Note

Die Beispielcodeausschnitte sind auf GitHub als JavaScript-Projekt verfügbar.

„API für MongoDB“-Referenzdokumentation | MongoDB-Paket (npm)

Prerequisites

Erstellen einer neuen JavaScript-App

  1. Erstellen Sie eine neue JavaScript-Anwendung in einem leeren Ordner mit Ihrem bevorzugten Terminal. Verwenden Sie den npm init Befehl, um die Eingabeaufforderungen zum Erstellen der package.json Datei zu starten. Übernehmen Sie die Standardwerte für die Eingabeaufforderungen.

    npm init
    
  2. Fügen Sie das Npm-Paket "MongoDB " zum JavaScript-Projekt hinzu. Verwenden Sie den npm install package Befehl, der den Namen des npm-Pakets angibt. Das Paket dotenv wird verwendet, um die Umgebungsvariablen während der lokalen Entwicklung aus einer .env-Datei zu lesen.

    npm install mongodb dotenv
    
  3. Verwenden Sie zur Ausführung der App ein Terminal, um zum Anwendungsverzeichnis zu navigieren und die Anwendung auszuführen.

    node index.js
    

Verbinden Sie sich mit dem nativen MongoDB-Treiber, um sich mit Azure Cosmos DB für MongoDB zu verbinden.

Um eine Verbindung mit dem systemeigenen MongoDB-Treiber mit Azure Cosmos DB herzustellen, erstellen Sie eine Instanz der klasse MongoClient. Diese Klasse ist der Ausgangspunkt, um alle Vorgänge für Datenbanken auszuführen.

Der gängigste Konstruktor für MongoClient hat zwei Parameter:

Parameter Beispielwert Description
url Umgebungsvariable COSMOS_CONNECTION_STRING API für die MongoDB-Verbindungszeichenfolge, die für alle Anforderungen verwendet werden soll.
options {ssl: true, tls: true, } MongoDB-Optionen für die Verbindung.

Weitere Informationen zu Verbindungsproblemen finden Sie im Handbuch zur Problembehandlung.

Ressourcennamen abrufen

  1. Erstellen Sie eine Shell-Variable für resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. Verwenden Sie den Befehlaz cosmosdb list, um den Namen des ersten Azure Cosmos DB-Kontos in Ihrer Ressourcengruppe abzurufen und in der Shell-Variable accountName zu speichern.

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

Rufen Sie Ihre Verbindungszeichenfolge ab

  1. Suchen Sie die Verbindungszeichenfolge der API für MongoDB aus der Liste der Verbindungszeichenfolgen des Kontos mit dem Befehl .

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Zeichnen Sie die PRIMARY KEY-Werte (Primärschlüsselwerte) auf. Sie werden diese Zugangsdaten zu einem späteren Zeitpunkt verwenden.

Umgebungsvariablen konfigurieren

Wenn Sie die Werte von CONNECTION STRING (Verbindungszeichenfolge) in Ihrem Code verwenden möchten, legen Sie diesen Wert in der lokalen Umgebung fest, in der die Anwendung ausgeführt wird. Verwenden Sie zum Festlegen der Umgebungsvariablen Ihr bevorzugtes Terminal, um die folgenden Befehle auszuführen:

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

MongoClient mit Verbindungszeichenfolge erstellen

  1. Fügen Sie Abhängigkeiten hinzu, um auf die Pakete MongoDB und DotEnv npm zu verweisen.

    // Use official mongodb driver to connect to the server
    import { MongoClient } from 'mongodb';
    
  2. Definieren Sie eine neue Instanz der klasse MongoClient mithilfe des Konstruktors, und process.env., um die Verbindungszeichenfolge zu verwenden.

    // New instance of MongoClient with connection string
    // for Cosmos DB
    const url = process.env.COSMOS_CONNECTION_STRING;
    const client = new MongoClient(url);
    
    // connect to the server
    await client.connect();
    
    // client options
    const options = client.options;
    console.log(
      `Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}`
    );
    

Weitere Informationen zu verschiedenen Möglichkeiten zum Erstellen einer MongoClient Instanz finden Sie unter MongoDB NodeJS Driver Quick Start.

MongoClient-Verbindung schließen

Denken Sie daran, die Verbindung zu schließen, wenn die Anwendung die Verbindung nicht mehr benötigt. Der .close() Aufruf sollte erfolgen, nachdem alle Datenbankaufrufe ausgeführt wurden.

client.close()

Verwenden von MongoDB-Clientklassen mit Azure Cosmos DB für die API für MongoDB

Bevor Sie mit dem Erstellen der Anwendung beginnen, sehen Sie sich die Hierarchie von Ressourcen in Azure Cosmos DB an. Bei Azure Cosmos DB gibt es ein spezifisches Objektmodell, das zum Erstellen von und Zugreifen auf Ressourcen verwendet wird. Azure Cosmos DB erstellt Ressourcen in einer Hierarchie, die aus Konten, Datenbanken, Sammlungen und Dokumenten besteht.

Diagramm der Azure Cosmos DB for MongoDB-Hierarchie, einschließlich Konten, Datenbanken, Sammlungen und Dokumentation.

Hierarchisches Diagramm mit einem Azure Cosmos DB for MongoDB-Konto ganz oben. Das Konto verfügt über zwei Kind-Datenbankknoten. Einer der Datenbankknoten enthält zwei untergeordnete Collection-Knoten. Der andere Datenbankknoten enthält einen einzelnen untergeordneten Sammlungsknoten. Dieser einzelne Sammelknoten verfügt über drei Kind-Dokumentknoten.

Jeder Ressourcentyp wird durch eine oder mehrere zugeordnete JavaScript-Klassen dargestellt. Hier ist eine Liste der am häufigsten verwendeten Klassen:

Class Description
MongoClient Diese Klasse bietet eine clientseitige logische Darstellung für die „API für MongoDB“-Ebene in Azure Cosmos DB. Das Clientobjekt wird zum Konfigurieren und Ausführen von Anforderungen für den Dienst verwendet.
Db Diese Klasse ist ein Verweis auf eine Datenbank, die möglicherweise noch nicht im Dienst vorhanden ist. Die Datenbank wird serverseitig überprüft, wenn Sie versuchen, darauf zuzugreifen oder einen Vorgang auszuführen.
Collection Diese Klasse ist ein Verweis auf eine Sammlung, die im Dienst ebenfalls möglicherweise noch nicht vorhanden ist. Die Sammlung wird vom Server aus überprüft, wenn Sie versuchen, damit zu arbeiten.

In den folgenden Leitfäden wird gezeigt, wie Sie diese verschiedenen Klassen verwenden, um Ihre Anwendung zu erstellen.

Anleitung:

Siehe auch

Nächste Schritte

Nachdem Sie nun eine Verbindung mit einem API für MongoDB-Konto hergestellt haben, befolgen Sie die nächste Anleitung zum Erstellen und Verwalten von Datenbanken.