Compartir a través de


Inicio rápido: Uso de Azure Cosmos DB para MongoDB (RU) con .NET

En este inicio rápido, implementará una aplicación básica de Azure Cosmos DB para MongoDB mediante Python. Azure Cosmos DB para MongoDB es un almacén de datos sin esquema que permite a las aplicaciones almacenar documentos no estructurados en la nube con bibliotecas de MongoDB. Aprenderá a crear documentos y a realizar tareas básicas en el recurso de Azure Cosmos DB mediante Python.

Código fuente de la biblioteca | Paquete (NuGet) | Azure Developer CLI

Requisitos previos

  • CLI de desarrollo de Azure
  • Docker Desktop
  • .NET SDK 9.0

Antes de comenzar, si no tiene una cuenta de Azure, cree una gratuita.

Inicialización del proyecto

Use Azure Developer CLI (azd) para crear una cuenta de Azure Cosmos DB for Table e implementar una aplicación de ejemplo contenedorizada. La aplicación de ejemplo usa la biblioteca cliente para administrar, crear, leer y consultar datos de ejemplo.

  1. Abra un terminal en un directorio vacío.

  2. Si aún no está autenticado, autentíquese en Azure Developer CLI mediante azd auth login. Siga los pasos especificados por la herramienta para autenticarse en la CLI mediante sus credenciales de Azure preferidas.

    azd auth login
    
  3. Ejecute azd init para inicializar el proyecto.

    azd init --template cosmos-db-mongodb-dotnet-quickstart
    
  4. Durante la inicialización, configure un nombre de entorno único.

  5. Implemente la cuenta de Azure Cosmos DB mediante azd up. Las plantillas de Bicep también implementan una aplicación web de muestra.

    azd up
    
  6. Durante el proceso de aprovisionamiento, seleccione la suscripción, la ubicación deseada y el grupo de recursos de destino. Espere a que se complete el proceso de aprovisionamiento. El proceso puede tardar aproximadamente cinco minutos.

  7. Una vez realizado el aprovisionamiento de los recursos de Azure, se incluye una dirección URL a la aplicación web en ejecución en la salida.

    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.
    
  8. Use la dirección URL de la consola para ir a la aplicación web en el explorador. Observe la salida de la aplicación en ejecución.

Captura de pantalla de la aplicación web en ejecución.

Instalación de la biblioteca cliente

La biblioteca cliente está disponible a través de NuGet, como paquete MongoDB.Driver.

  1. Abra un terminal y vaya a la carpeta /src/web.

    cd ./src/web
    
  2. Si aún no está instalado, instale el paquete MongoDB.Driver mediante dotnet add package.

    dotnet add package MongoDB.Driver
    
  3. Abra y revise el archivo src/web/Microsoft.Samples.Cosmos.MongoDB.Quickstart.Web.csproj para validar que existe las entrada MongoDB.Driver.

Modelo de objetos

Nombre Descripción
MongoClient Tipo que se usa para conectarse a MongoDB.
Database Representa una base de datos de la cuenta.
Collection Representa una colección dentro de una base de datos de la cuenta.

Ejemplos de código

El código de ejemplo de la plantilla usa una base de datos denominada cosmicworks y una colección denominada products. La colección products contiene detalles como el nombre, la categoría, la cantidad y un identificador único para cada producto. La colección usa la propiedad /category como clave de partición.

Autenticar el cliente

En este ejemplo se crea una nueva instancia de la clase MongoClient.

string connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";

MongoClient client = new(connectionString);

Obtención de una base de datos

En este ejemplo se crea una instancia de la interfaz IMongoDatabase mediante el método GetDatabase de la clase MongoClient.

IMongoDatabase database = client.GetDatabase("<database-name>");

Obtener una colección

En este ejemplo se crea una instancia de la interfaz de IMongoCollection<> genérica mediante el método genérico GetCollection<> de la interfaz IMongoDatabase. La interfaz genérica y el método usan un tipo denominado Product definido en otra clase.

IMongoCollection<Product> collection = database.GetCollection<Product>("<collection-name>");
public record Product(
    string id,
    string category,
    string name,
    int quantity,
    decimal price,
    bool clearance
);

Creación de un documento

Cree un documento en la colección mediante collection.ReplaceOneAsync<> con el parámetro de tipo Product genérico. Este método "actualiza" eficazmente el elemento si ya existe.

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 }
);

Lectura de un documento

Realice una operación de lectura de punto mediante el identificador único (id) y los campos de clave de partición. Use collection.FindAsync<> con el parámetro de tipo Product genérico para recuperar eficazmente el elemento específico.

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();

Consulta de documentos

Realice una consulta en varios elementos de un contenedor mediante collection.AsQueryable() y la consulta integrada por lenguaje (LINQ). Esta consulta busca todos los elementos de una categoría especificada (clave de partición).

IQueryable<Product> documents = collection.AsQueryable().Where(
    d => d.category == "gear-surf-surfboards"
);

foreach (Product document in await documents.ToListAsync())
{
    // Do something with each item
}

Exploración de los datos

Use la extensión de Visual Studio Code para Azure Cosmos DB para explorar los datos de MongoDB. Puede realizar operaciones básicas de base de datos, entre las que se incluyen, entre otras:

  • Realizar consultas mediante un libro de recortes o el editor de consultas
  • Modificar, actualizar, crear y eliminar documentos
  • Importar datos masivos desde otros orígenes
  • Administración de bases de datos y colecciones

Para más información, consulte Cómo usar la extensión de Visual Studio Code para explorar datos de Azure Cosmos DB for MongoDB.

Limpieza de recursos

Cuando ya no necesite la aplicación o los recursos de ejemplo, quite la implementación correspondiente y todos los recursos.

azd down