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 diesem Schnellstart 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 (NuGet) | Azure Developer CLI
Voraussetzungen
- Azure Developer CLI
- Docker Desktop
- .NET SDK 9.0
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 loginbei 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 loginVerwenden Sie
azd init, um das Projekt zu initialisieren.azd init --template cosmos-db-mongodb-dotnet-quickstartKonfigurieren Sie während der Initialisierung einen eindeutigen Umgebungsnamen.
Stellen Sie das Azure Cosmos DB-Konto mit
azd upbereit. Die Bicep-Vorlagen stellen auch eine Beispielwebanwendung bereit.azd upWä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 NuGet als MongoDB.Driver-Paket verfügbar.
Öffnen Sie ein Terminal, und navigieren Sie zu dem
/src/web-Ordner.cd ./src/webInstallieren Sie das
MongoDB.Driver-Paket mithilfe vondotnet add package, falls es noch nicht installiert ist.dotnet add package MongoDB.DriverÖffnen Sie die src/web/Microsoft.Samples.Cosmos.MongoDB.Quickstart.Web.csproj Datei, um zu überprüfen, ob der
MongoDB.DriverEintrag vorhanden ist.
Importieren von Bibliotheken
Importieren Sie den MongoDB.Driver Namespace in Ihren Anwendungscode.
using MongoDB.Driver;
Objektmodell
| Name | Beschreibung |
|---|---|
MongoClient |
Typ, der zum Herstellen einer Verbindung mit MongoDB verwendet wird. |
Database |
Stellt eine Datenbank im Konto dar. |
Collection |
Stellt eine Sammlung innerhalb einer Datenbank in dem 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 der MongoClient-Klasse.
string connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";
MongoClient client = new(connectionString);
Datenbank abrufen
In diesem Beispiel wird eine Instanz der Schnittstelle IMongoDatabase mithilfe der Methode GetDatabase der Klasse MongoClient erstellt.
IMongoDatabase database = client.GetDatabase("<database-name>");
Sammlung abrufen
In diesem Beispiel wird eine Instanz der generischen Schnittstelle IMongoCollection<> mithilfe der generischen Methode GetCollection<> der Schnittstelle IMongoDatabase erstellt. Die generische Schnittstelle und die Methode verwenden beide einen Typ namens Product, der in einer anderen Klasse definiert ist.
IMongoCollection<Product> collection = database.GetCollection<Product>("<collection-name>");
public record Product(
string id,
string category,
string name,
int quantity,
decimal price,
bool clearance
);
Erstellen eines Dokuments
Erstellen Sie mithilfe von collection.ReplaceOneAsync<> mit dem generischen Product Typparameter 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).
Product document = new(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
category: "gear-surf-surfboards",
name: "Yamba Surfboard",
quantity: 12,
price: 850.00m,
clearance: false
);
await collection.ReplaceOneAsync<Product>(
d => d.id == document.id,
document,
new ReplaceOptions { IsUpsert = true }
);
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.FindAsync<> mit dem generischen Product-Typparameter, um das bestimmte Element effizient abzurufen.
IAsyncCursor<Product> documents = await collection.FindAsync<Product>(
d => d.id == "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" && d.category == "gear-surf-surfboards"
);
Product? document = await documents.SingleOrDefaultAsync();
Abfragedokumente
Führen Sie mithilfe von collection.AsQueryable() und Language Integrated Query (LINQ) eine Abfrage für mehrere Elemente in einem Container durch. Diese Abfrage findet alle Elemente in einer angegebenen Kategorie (Shardschlüssel).
IQueryable<Product> documents = collection.AsQueryable().Where(
d => d.category == "gear-surf-surfboards"
);
foreach (Product document in await documents.ToListAsync())
{
// 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 im Artikel Verwendung der Visual Studio Code-Erweiterung zum Erkunden von Daten in Azure Cosmos DB für MongoDB.
Bereinigen von Ressourcen
Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.
azd down --force --purge