Schnellstart: Verwenden von Azure Cosmos DB for MongoDB (RU) mit .NET
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 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-dotnet-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 NuGet als MongoDB.Driver
-Paket verfügbar.
Öffnen Sie ein Terminal, und navigieren Sie zu dem
/src/web
-Ordner.cd ./src/web
Installieren 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.Driver
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 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 Elemente 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 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