Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erstellen Sie eine einfache Azure DocumentDB-Anwendung mit Node.js. Azure DocumentDB ist ein NoSQL-Datenspeicher, mit dem Anwendungen Dokumente in der Cloud speichern und mit offiziellen MongoDB-Treibern darauf zugreifen können. In diesem Handbuch wird gezeigt, wie Sie Dokumente erstellen und grundlegende Aufgaben in Ihrem Azure DocumentDB-Cluster mithilfe von Node.jsausführen.
API-Referenz | Quellcode | Paket (npm)
Voraussetzungen
Ein Azure-Abonnement
- Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto
- Node.js 22 oder höher
Erstellen eines Azure DocumentDB-Clusters
Zunächst müssen Sie einen Azure DocumentDB-Cluster erstellen, der als Grundlage für das Speichern und Verwalten Ihrer NoSQL-Daten dient.
Melden Sie sich beim Azure-Portal an (https://portal.azure.com).
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.
Suchen Sie auf der Seite "Neu" nach Azure DocumentDB, und wählen Sie sie aus.
Wählen Sie auf der Seite "Azure DocumentDB-Cluster erstellen" und im Abschnitt " Grundlagen " die Option "Konfigurieren" im Abschnitt " Clusterebene " aus.
Konfigurieren Sie auf der Seite "Skalieren " diese Optionen, und wählen Sie dann " Speichern " aus, um ihre Änderungen auf der Clusterebene beizubehalten.
Wert Cluster-Ebene M30 tier, 2 vCore, 8-GiB RAMSpeicherplatz pro Shard 128 GiB
Gehen Sie zurück in den Abschnitt "Grundlagen" und konfigurieren Sie die folgenden Optionen:
Wert Subscription Wählen Sie Ihr Azure-Abonnement aus. Ressourcengruppe Erstellen Sie eine neue Ressourcengruppe, oder wählen Sie eine vorhandene Ressourcengruppe aus Clustername Geben Sie einen global eindeutigen Namen an. Ort Wählen Sie eine unterstützte Azure-Region für Ihre Subscription MongoDB-Version Auswählen 8.0Admin-Benutzername Erstellen eines Benutzernamens für den Zugriff auf den Cluster als Benutzeradministrator Passwort Verwenden eines eindeutigen Kennworts, das dem Benutzernamen zugeordnet ist
Tipp
Notieren Sie die Werte, die Sie für Benutzername und Kennwort verwenden. Diese Werte werden weiter unten in diesem Leitfaden verwendet. Weitere Informationen zu gültigen Werten finden Sie unter Clusterbeschränkungen.
Klicken Sie auf Weiter: Netzwerk.
Konfigurieren Sie im Abschnitt "Firewallregeln " auf der Registerkarte "Netzwerk " die folgenden Optionen:
Wert Konnektivitätsmethode Public accessZulassen des öffentlichen Zugriffs von Azure-Diensten und -Ressourcen in Azure auf diesen Cluster Aktiviert Fügen Sie eine Firewallregel für Ihr aktuelles Clientgerät hinzu, um Zugriff auf den Cluster zu gewähren, indem Sie +Aktuelle Client-IP-Adresse hinzufügen auswählen.
Tipp
In vielen Unternehmensumgebungen werden IP-Adressen des Entwicklercomputers aufgrund von VPN-Einstellungen oder anderer Unternehmensnetzwerkeinstellungen ausgeblendet. In diesen Fällen können Sie vorübergehend den Zugriff auf alle IP-Adressen zulassen, indem Sie den
0.0.0.0-255.255.255.255IP-Adressbereich als Firewallregel hinzufügen. Verwenden Sie diese Firewallregel nur vorübergehend als Teil von Verbindungstests und -entwicklung.Klicken Sie auf Überprüfen + erstellen.
Überprüfen Sie die von Ihnen angegebenen Einstellungen, und wählen Sie dann Erstellen aus. Die Erstellung des Clusters dauert einige Minuten. Warten Sie, bis die Ressourcenbereitstellung abgeschlossen ist.
Wählen Sie schließlich "Zur Ressource wechseln " aus, um im Portal zum Azure DocumentDB-Cluster zu navigieren.
Abrufen von Clusteranmeldeinformationen
Rufen Sie die Anmeldeinformationen ab, die Sie zum Herstellen einer Verbindung mit dem Cluster verwenden.
Wählen Sie auf der Clusterseite die Option "Verbindungszeichenfolgen" im Ressourcenmenü aus.
Kopieren oder aufzeichnen Sie im Abschnitt "Verbindungszeichenfolgen " den Wert aus dem Feld "Verbindungszeichenfolge ".
Von Bedeutung
Die Verbindungszeichenfolge im Portal enthält nicht den Kennwortwert. Sie müssen den <password> Platzhalter durch die Anmeldeinformationen ersetzen, die Sie beim Erstellen des Clusters eingegeben haben, oder das Kennwort interaktiv eingeben.
Initialisieren des Projekts
Erstellen Sie ein neues Node.js Projekt in Ihrem aktuellen Verzeichnis.
Beginnen Sie in einem leeren Verzeichnis.
Öffnen Sie ein Terminal im aktuellen Verzeichnis.
Initialisieren sie ein Node.js Projekt.
npm init -yInstallieren Sie TypeScript und initialisieren Sie die TypeScript-Konfiguration (optional für die TypeScript-Unterstützung).
npm install -D typescript @types/node npx tsc --init
Installieren der Clientbibliothek
Die Clientbibliothek ist über npm als mongodb-Paket verfügbar.
Installieren Sie den MongoDB Node.js Treiber mithilfe von npm.
npm install mongodbÖffnen Und überprüfen Sie die package.json Datei, um zu überprüfen, ob der Paketeintrag vorhanden ist.
Importieren Sie die erforderlichen Module in Ihren Anwendungscode:
import { MongoClient, Db, Collection, Document } from 'mongodb';const { MongoClient } = require('mongodb');
Objektmodell
| Name | Description |
|---|---|
MongoClient |
Typ, der zum Herstellen einer Verbindung mit MongoDB verwendet wird. |
Db |
Stellt eine Datenbank im Cluster dar. |
Collection<Document> |
Stellt eine Auflistung innerhalb einer Datenbank im Cluster dar. |
Code-Beispiele
- Authentifizieren des Clients
- Abrufen einer Auflistung
- Erstellen eines Dokuments
- Abrufen eines Dokuments
- Abfragedokumente
Der Code in dieser Anwendung stellt eine Verbindung zu einer Datenbank namens adventureworks und einer Sammlung namens products her. Die products Sammlung enthält Details wie Name, Kategorie, Menge, eindeutigen Bezeichner und ein Verkaufskennzeichen für jedes Produkt. In den Codebeispielen werden hier die am häufigsten verwendeten Vorgänge beim Arbeiten mit einer Auflistung ausgeführt.
Authentifizieren des Clients
Stellen Sie zunächst mithilfe einer einfachen Verbindungszeichenfolge eine Verbindung mit dem Client her.
Erstellen Sie die Hauptfunktion, und richten Sie die Verbindungszeichenfolge ein. Ersetzen Sie
<your-cluster-name>,<your-username>und<your-password>durch Ihre tatsächlichen Clusterinformationen.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);Stellen Sie eine Verbindung mit dem MongoDB-Client her, und überprüfen Sie die Verbindung.
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");
Sammlung abrufen
Rufen Sie nun Ihre Datenbank und Sammlung ab. Wenn die Datenbank und Sammlung noch nicht vorhanden ist, verwenden Sie den Treiber, um sie automatisch zu erstellen.
Holen Sie sich eine Referenz auf die Datenbank.
// 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}`);Rufen Sie einen Verweis auf die Sammlung in der Datenbank ab.
// 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");
Erstellen eines Dokuments
Erstellen Sie dann ein paar neue Dokumente in Ihrer Sammlung. Führen Sie eine Upsert für die Dokumente aus, um sicherzustellen, dass vorhandene Dokumente ersetzt werden, wenn sie bereits mit demselben eindeutigen Bezeichner vorhanden sind.
Erstellen Sie Beispielproduktdokumente.
// 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, } ];Fügen Sie die Dokumente mithilfe von Upsert-Vorgängen ein.
// 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}`); }
Abrufen eines Dokuments
Führen Sie als Nächstes einen Punktlesevorgang aus, um ein bestimmtes Dokument aus Ihrer Sammlung abzurufen.
Definieren Sie den Filter, um ein bestimmtes Dokument anhand der ID zu finden.
// 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" };Führen Sie die Abfrage aus, und rufen Sie das Ergebnis ab.
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"); }
Abfragedokumente
Fragen Sie schließlich mehrere Dokumente mithilfe der MongoDB Query Language (MQL) ab.
Definieren Sie eine Abfrage, um Dokumente zu finden, die bestimmten Kriterien entsprechen.
// 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();Durchlaufen Sie die Ergebnisse, um die übereinstimmenden Dokumente anzuzeigen.
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);
Erkunden Ihrer Daten mithilfe von Visual Studio Code
Verwenden Sie die DocumentDB-Erweiterung in Visual Studio Code, um kerne Datenbankvorgänge auszuführen, einschließlich Abfragen, Einfügen, Aktualisieren und Löschen von Daten.
Öffnen Sie Visual Studio Code.
Navigieren Sie zur Ansicht "Erweiterungen ", und suchen Sie nach dem Ausdruck
DocumentDB. Suchen Sie die DocumentDB-Erweiterung für VS Code .Wählen Sie die Schaltfläche " Installieren " für die Erweiterung aus. Warten Sie, bis die Installation abgeschlossen ist. Laden Sie Visual Studio Code neu, wenn Sie dazu aufgefordert werden.
Navigieren Sie zur DocumentDB-Erweiterung , indem Sie das entsprechende Symbol in der Aktivitätsleiste auswählen.
Wählen Sie im Bereich "DocumentDB-Verbindungen " +Neue Verbindung... aus.
Wählen Sie im Dialogfeld "Dienstermittlung " und dann "Azure DocumentDB – Azure Service Discovery" aus.
Wählen Sie Ihr Azure-Abonnement und Ihren neu erstellten Azure DocumentDB-Cluster aus.
Tipp
In vielen Unternehmensumgebungen werden IP-Adressen des Entwicklercomputers aufgrund von VPN-Einstellungen oder anderer Unternehmensnetzwerkeinstellungen ausgeblendet. In diesen Fällen können Sie vorübergehend den Zugriff auf alle IP-Adressen zulassen, indem Sie den
0.0.0.0-255.255.255.255IP-Adressbereich als Firewallregel hinzufügen. Verwenden Sie diese Firewallregel nur vorübergehend als Teil von Verbindungstests und -entwicklung. Weitere Informationen finden Sie unter "Konfigurieren der Firewall".Erweitern Sie im Bereich DocumentDB-Verbindungen den Knoten für Ihren Cluster, und navigieren Sie zu Ihren vorhandenen Dokument- und Sammlungsknoten.
Öffnen Sie das Kontextmenü für die Auflistung, und wählen Sie dann "DocumentDB Scrapbook New DocumentDB Scrapbook > " aus.
Geben Sie die folgenden MongoDB Query Language (MQL)-Befehle ein, und wählen Sie dann "Alle ausführen" aus. Beobachten Sie die Ergebnisse der Befehle.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Bereinigen von Ressourcen
Wenn Sie mit dem Azure DocumentDB-Cluster fertig sind, können Sie die azure-Ressourcen löschen, die Sie erstellt haben, damit keine weiteren Gebühren anfallen.
Suchen Sie über die Suchleiste des Azure-Portals nach Ressourcengruppen, und wählen Sie die entsprechende Option aus.
Wählen Sie in der Liste die Ressourcengruppe aus, die Sie für diesen Schnellstart verwendet haben.
Wählen Sie auf der Ressourcengruppenseite die Option Ressourcengruppe löschen aus.
Geben Sie im Dialogfeld zum Bestätigen des Löschvorgangs den Namen der Ressourcengruppe ein, um zu bestätigen, dass Sie sie löschen möchten. Wählen Sie abschließend Löschen aus, um die Ressourcengruppe endgültig zu löschen.