Schnellstart: Verwenden von Azure Cosmos DB for MongoDB (RU) mit Node.js
In dieser Schnellstartanleitung stellen Sie eine einfache Azure Cosmos DB for MongoDB-Anwendung mit Python bereit. Azure Cosmos DB for MongoDB ist ein schemaloser Datenspeicher, mit dem Anwendungen unstrukturierte Dokumente in der Cloud mit MongoDB-Bibliotheken speichern können. Sie erfahren, wie Sie Dokumente und grundlegende Aufgaben in Ihrer Azure Cosmos DB-Ressource mithilfe von Python erstellen.
Bibliotheksquellcode | Package (npm) | Azure Developer CLI
Voraussetzungen
- Azure Developer CLI
- Docker Desktop
- Node.js 22 oder höher
Sollten Sie kein Azure-Konto haben, erstellen Sie zunächst ein kostenloses Konto.
Initialisieren des Projekts
Verwenden Sie die Azure Developer CLI (azd
), um ein Azure Cosmos DB for Table-Konto zu erstellen und eine containerisierte Beispielanwendung bereitzustellen. Die Beispielanwendung verwendet die Clientbibliothek zum Verwalten, Erstellen, Lesen und Abfragen von Beispieldaten.
Öffnen Sie ein Terminal in einem leeren Verzeichnis.
Wenn Sie noch nicht authentifiziert sind, authentifizieren Sie sich mithilfe von
azd auth login
bei der Azure Developer CLI. Führen Sie die vom Tool angegebenen Schritte aus, um sich mit Ihren bevorzugten Azure-Anmeldeinformationen bei der CLI zu authentifizieren.azd auth login
Verwenden Sie
azd init
, um das Projekt zu initialisieren.azd init --template cosmos-db-mongodb-nodejs-quickstart
Konfigurieren Sie während der Initialisierung einen eindeutigen Umgebungsnamen.
Stellen Sie das Azure Cosmos DB-Konto mit
azd up
bereit. Die Bicep-Vorlagen stellen auch eine Beispielwebanwendung bereit.azd up
Wählen Sie während des Bereitstellungsprozesses Ihr Abonnement, den gewünschten Standort und die Zielressourcengruppe aus. Warten Sie auf den Abschluss des Bereitstellungsvorgangs. Dieser Prozess kann ca. fünf Minuten dauern.
Sobald die Bereitstellung Ihrer Azure-Ressourcen abgeschlossen ist, enthält die Ausgabe eine URL zur ausgeführten Webanwendung.
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.
Verwenden Sie die URL in der Konsole, um im Browser zu Ihrer Webanwendung zu navigieren. Sehen Sie sich die Ausgabe der ausgeführten App an.
Installieren der Clientbibliothek
Die Clientbibliothek ist über npm als mongodb
-Paket verfügbar.
Öffnen Sie ein Terminal, und navigieren Sie zum Ordner
/src/ts
.cd ./src/ts
Installieren Sie das
mongodb
-Paket mithilfe vonnpm install
, falls es noch nicht installiert ist.npm install --save mongodb
Öffnen Sie die Datei src/ts/package.json, um zu überprüfen, ob der
mongodb
Eintrag vorhanden ist.
Öffnen Sie ein Terminal, und navigieren Sie zum Ordner
/src/js
.cd ./src/js
Installieren Sie das
mongodb
-Paket mithilfe vonnpm install
, falls es noch nicht installiert ist.npm install --save mongodb
Öffnen Sie die Datei src/js/package.json, um zu überprüfen, ob der
mongodb
Eintrag vorhanden ist.
Objektmodell
name | Beschreibung |
---|---|
MongoClient |
Typ, der zum Herstellen einer Verbindung mit MongoDB verwendet wird. |
Database |
Stellt eine Datenbank im Konto dar. |
Collection |
Stellt eine Auflistung innerhalb einer Datenbank im Konto dar. |
Codebeispiele
- Authentifizieren des Clients
- Datenbank abrufen
- Abrufen einer Auflistung
- Erstellen eines Dokuments
- Abrufen eines Dokuments
- Abfragedokumente
Der Beispielcode in der Vorlage verwendet eine Datenbank mit dem Namen cosmicworks
und eine Auflistung mit dem Namen products
. Die products
-Sammlung enthält Details wie Name, Kategorie, Menge und eindeutiger Bezeichner für jedes Produkt. Die Auflistung verwendet die Eigenschaft /category
als Shard-Schlüssel.
Authentifizieren des Clients
Dieses Beispiel erstellt eine neue Instanz des MongoClient
-Typs.
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);
Datenbank abrufen
In diesem Beispiel wird eine Instanz des Typs Db
mithilfe der db
-Funktion des Typs MongoClient
erstellt.
const database: Db = client.db("<database-name>");
const database = client.db("<database-name>");
Sammlung abrufen
In diesem Beispiel wird eine Instanz des Typs Collection
mithilfe der collection
-Funktion des Typs Db
erstellt.
Diese Funktion hat einen generischen Parameter, der den in einer Schnittstelle definierten Product
-Typ verwendet.
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>");
Erstellen eines Dokuments
Erstellen Sie mithilfe von collection.updateOne
ein Dokument in der Sammlung. Mit dieser Methode wird ein Upsertvorgang für das Element ausgeführt, wodurch es effektiv ersetzt wird (sofern schon vorhanden).
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);
Lesen eines Dokuments
Führen Sie einen Punktlesevorgang durch, indem Sie sowohl den eindeutigen Bezeichner (id
) als auch die Shardschlüsselfelder verwenden. Verwenden Sie collection.findOne
, um das jeweilige Element effizient abzurufen.
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);
Abfragedokumente
Führen Sie mithilfe von collection.find
eine Abfrage für mehrere Elemente in einem Container durch. Diese Abfrage findet alle Elemente in einer angegebenen Kategorie (Shardschlüssel).
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
}
Untersuchen Ihrer Daten
Verwenden Sie die Visual Studio Code-Erweiterung für Azure Cosmos DB, um Ihre MongoDB-Daten zu untersuchen. Sie können Kerndatenbankvorgänge ausführen, einschließlich, aber nicht beschränkt auf:
- Ausführen von Abfragen mit einem Scrapbook oder dem Abfrage-Editor
- Ändern, aktualisieren, erstellen und löschen von Dokumenten
- Importieren von Massendaten aus anderen Quellen
- Verwalten von Datenbanken und Sammlungen
Weitere Informationen finden Sie unter Verwenden der Visual Studio Code-Erweiterung zum Untersuchen von Azure Cosmos DB for MongoDB-Daten.
Bereinigen von Ressourcen
Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.
azd down