Compartir a través de


Creación de un elemento en el NoSQL de Azure Cosmos DB mediante .NET

SE APLICA A: NoSQL

Los elementos de Azure Cosmos DB representan una entidad específica almacenada dentro de un contenedor. En la API para NoSQL, un elemento consta de datos con formato JSON con un identificador único.

Creación de un identificador único para un elemento

El identificador único es una cadena única que identifica un elemento dentro de un contenedor. La propiedad id es la única propiedad necesaria al crear un nuevo documento JSON. Por ejemplo, este documento JSON es un elemento válido en Azure Cosmos DB:

{
  "id": "unique-string-2309509"
}

Dentro del ámbito de un contenedor, dos elementos no pueden compartir el mismo identificador único.

Importante

La propiedad id distingue mayúsculas de minúsculas. Las propiedades llamadas ID, Id, iD y _id se tratarán como una propiedad JSON arbitraria.

Una vez creado, el identificador URI de un elemento tiene este formato:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/docs/<item-resource-identifier>

Al hacer referencia al elemento mediante un identificador URI, use el identificador de recurso generado por el sistema en lugar del campo id. Para más información sobre las propiedades de los elementos generadas por el sistema en NoSQL de Azure Cosmos DB, consulte Propiedades de un elemento

Crear un elemento

Nota:

En los ejemplos de este artículo, se da por supuesto que ya ha definido un tipo de C# para representar los datos llamado Product:

// C# record type for items in the container
public record Product(
    string id,
    string category,
    string name,
    int quantity,
    bool sale
);

En los ejemplos, también se da por supuesto que ya ha creado un nuevo objeto de tipo Product llamado newItem:

// Create new item and add to container
Product item = new(
    id: "68719518388",
    category: "gear-surf-surfboards",
    name: "Sunnox Surfboard",
    quantity: 8,
    sale: true
);

Para crear un elemento, llame a uno de los métodos siguientes:

Creación de un elemento de forma asincrónica

En el ejemplo siguiente, se crea un elemento nuevo de forma asincrónica:

Product createdItem = await container.CreateItemAsync<Product>(
    item: item,
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

El método Container.CreateItemAsync<> producirá una excepción si hay un conflicto con el identificador único de un elemento existente. Para más información sobre las posibles excepciones, consulte Excepciones de CreateItemAsync<>.

Sustitución de un elemento de forma asincrónica

En el ejemplo siguiente, se reemplaza un elemento existente de forma asincrónica:

Product replacedItem = await container.ReplaceItemAsync<Product>(
    item: item,
    id: "68719518388",
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

El método Container.ReplaceItemAsync<> requiere que la cadena proporcionada para el parámetro id coincida con el identificador único del parámetro item.

Creación o sustitución de un elemento de forma asincrónica

En el ejemplo siguiente, se creará un nuevo elemento o se reemplazará un elemento existente si ya existe un elemento con el mismo identificador único:

Product upsertedItem = await container.UpsertItemAsync<Product>(
    item: item,
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

El método Container.UpsertItemAsync<> usará el identificador único del parámetro item para determinar si hay un conflicto con un elemento existente y reemplazarlo correctamente.

Pasos siguientes

Ahora que ha creado varios elementos, use la siguiente guía para leer un elemento.