你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 JavaScript 在 Azure Cosmos DB for NoSQL 中创建项

适用范围: NoSQL

Azure Cosmos DB 中的项表示存储在容器中的特定实体。 在 API for NoSQL 中,项由具有唯一标识符的 JSON 格式数据组成。

项、项定义和项响应

在 JavaScript SDK 中,与项相关的三个队形具有不同的用途。

名称 Operations
项目 功能包括读取修补替换删除
ItemDefinition 自定义数据对象。 自动包括 idttl 属性。
ItemResponse 包括 statusCodeitem 和其他属性。

使用 ItemResponse 对象的属性来了解操作的结果。

  • statusCode:HTTP 状态代码。 成功响应介于 200-299 范围内。
  • activityId:创建、读取、替换或删除等操作的唯一标识符。
  • 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(复数):创建、批处理、监视更改源、全部读取、更新插入或查询项。
  • Item(单数):读取、批处理、替换或删除项。

替换项

使用 replace 方法将数据替换为 Item 对象。

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

后续步骤

现在你已创建各种项,请使用下一个指南查询项。