共用方式為


使用 .NET 在 Azure Cosmos DB for NoSQL 中建立項目

適用於:NoSQL

Azure Cosmos DB 中的項目代表儲存在容器內的特定實體。 在 NoSQL API 中,項目是由具有唯一識別碼的 JSON 格式資料所組成。

建立項目的唯一識別碼

唯一識別碼是識別容器內專案的相異字串。 屬性 id 是建立新 JSON 文件時唯一的必要屬性。 例如,此 JSON 文件是 Azure Cosmos DB 中的有效項目:

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

在容器的範圍內,兩個項目無法共用相同的唯一識別碼。

重要

id 屬性必須區分大小寫。 名為 IDIdiD_id 的屬性會被視為任意 JSON 屬性。

建立之後,項目的 URI 格式如下:

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

使用 URI 參考項目時,請使用系統產生的資源識別碼,而不是 id 欄位。 如需 Azure Cosmos DB for NoSQL 中系統所產生項目屬性的詳細資訊,請參閱項目的屬性

建立項目

注意

本文中的範例假設您已經定義 C# 類型來代表名為 Product 的資料:

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

這些範例也假設您已經建立名為 newItemProduct 類型新物件:

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

若要建立項目,請呼叫下列其中一種方法:

以非同步方式建立項目

下列範例會以非同步方式建立新項目:

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

如果現有項目的唯一識別碼發生衝突,方法 Container.CreateItemAsync<> 將會擲回例外狀況。 若要深入了解可能的例外狀況,請參閱CreateItemAsync<>例外狀況

以非同步方式取代項目

下列範例會以非同步方式取代現有的項目:

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

方法 Container.ReplaceItemAsync<> 需要提供給 id 參數的字串,以符合 item 參數的唯一識別碼。

以非同步方式建立或取代項目

下列範例會建立新的項目,如果項目已經存在,則以相同的唯一識別碼取代現有項目:

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

方法 Container.UpsertItemAsync<> 會使用 item 參數的唯一識別碼來判斷是否有與現有項目發生衝突,並適當地取代項目。

下一步

既然您已建立各種項目,請使用下一個指南來讀取項目。