Share via


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

適用於:NoSQL

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

項目、項目定義和項目回應

在 JavaScript SDK 中,三個與項目相關的物件有不同的用途。

名稱 Operations
項目 包括「讀取」、「修補」、「取代」、「刪除」的功能。
ItemDefinition 您的自訂資料物件。 自動包括 idttl 屬性。
ItemResponse 包括 statusCodeitem 和其他屬性。

使用 ItemResponse 物件的屬性來了解作業的結果。

  • statusCode:HTTP 狀態碼。 成功的回應是在 200-299 範圍內。
  • activityId:作業的唯一識別碼,例如 create、read、replace 或 delete。
  • etag:與資料相關聯的實體標記。 用於開放式並行、快取和條件式要求。
  • item:用來執行讀取、取代、刪除這類作業的 Item 物件。
  • resource:您的自訂資料。

建立項目的唯一識別碼

唯一識別碼是識別容器內專案的相異字串。 屬性 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 中系統所產生項目屬性的詳細資訊,請參閱項目的屬性

建立項目

使用 create 方法,建立具有容器 items 物件的項目。

const { statusCode, item, resource, activityId, etag} = await container.items.create({ 
        id: '2', 
        category: 'gear-surf-surfboards',
        name: 'Sunnox Surfboard',
        quantity: 8,
        sale: true 
    });

存取項目

透過 Item 物件來存取項目。 這可以從 Container 物件進行存取,或是從 DatabaseCosmosClient 物件進行變更。

// Chained, then use a method of the Item object such as `read`
const { statusCode, item, resource, activityId, etag} = await client.database(databaseId).container(containerId).item(itemId).read();

透過物件存取:

  • Items (複數):建立、批次處理、監看變更摘要、全部讀取、upsert 或查詢項目。
  • Item (單數):讀取、修補、取代或刪除項目。

取代項目

搭配使用 Item 物件與 replace 方法,來取代資料。

const { statusCode, item, resource, activityId, etag} = await item.replace({ 
        id: '2', 
        category: 'gear-surf-surfboards-retro',
        name: 'Sunnox Surfboard Retro',
        quantity: 5,
        sale: false 
    });

讀取項目

使用 Item 物件的 read 方法,來讀取最新資料。

const { statusCode, item, resource, activityId, etag} = await item.read();

刪除項目

使用 Item 物件的 delete 方法,來刪除項目。

const { statusCode, item, activityId, etag} = await item.delete();

下一步

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