Create an item in Azure Cosmos DB for NoSQL using .NET
APPLIES TO:
NoSQL
Items in Azure Cosmos DB represent a specific entity stored within a container. In the API for NoSQL, an item consists of JSON-formatted data with a unique identifier.
Create a unique identifier for an item
The unique identifier is a distinct string that identifies an item within a container. The id
property is the only required property when creating a new JSON document. For example, this JSON document is a valid item in Azure Cosmos DB:
{
"id": "unique-string-2309509"
}
Within the scope of a container, two items can't share the same unique identifier.
Important
The id
property is case-sensitive. Properties named ID
, Id
, iD
, and _id
will be treated as an arbitrary JSON property.
Once created, the URI for an item is in this format:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/docs/<item-resource-identifier>
When referencing the item using a URI, use the system-generated resource identifier instead of the id
field. For more information about system-generated item properties in Azure Cosmos DB for NoSQL, see properties of an item
Create an item
Note
The examples in this article assume that you have already defined a C# type to represent your data named Product:
// C# record type for items in the container
public record Product(
string id,
string category,
string name,
int quantity,
bool sale
);
The examples also assume that you have already created a new object of type Product named newItem:
// Create new item and add to container
Product item = new(
id: "68719518388",
category: "gear-surf-surfboards",
name: "Sunnox Surfboard",
quantity: 8,
sale: true
);
To create an item, call one of the following methods:
Create an item asynchronously
The following example creates a new item asynchronously:
Product createdItem = await container.CreateItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
The Container.CreateItemAsync<>
method will throw an exception if there's a conflict with the unique identifier of an existing item. To learn more about potential exceptions, see CreateItemAsync<>
exceptions.
Replace an item asynchronously
The following example replaces an existing item asynchronously:
Product replacedItem = await container.ReplaceItemAsync<Product>(
item: item,
id: "68719518388",
partitionKey: new PartitionKey("gear-surf-surfboards")
);
The Container.ReplaceItemAsync<>
method requires the provided string for the id
parameter to match the unique identifier of the item
parameter.
Create or replace an item asynchronously
The following example will create a new item or replace an existing item if an item already exists with the same unique identifier:
Product upsertedItem = await container.UpsertItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
The Container.UpsertItemAsync<>
method will use the unique identifier of the item
parameter to determine if there's a conflict with an existing item and to replace the item appropriately.
Next steps
Now that you've created various items, use the next guide to read an item.
Feedback
Submit and view feedback for