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

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

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

项、项定义和项响应

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

Name Operations
物品 包括 读取修补替换删除等功能。
ItemDefinition 自定义数据对象。 自动包括 idttl 属性。
ItemResponse 包括 statusCodeitem和其他属性。

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

  • statusCode:HTTP 状态代码。 成功的响应在 200-299 范围内。
  • activityId :操作的唯一标识符,例如创建、读取、替换或删除。
  • etag:与数据关联的实体标记。 用于乐观并发、缓存和条件请求。
  • item:用于执行读取、替换、删除等作的 Item 对象。
  • 资源:自定义数据。

为项创建唯一标识符

唯一标识符是标识容器中的项的非重复字符串。 该 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 中系统生成的项属性的详细信息,请参阅 项的属性

创建一个项目

使用容器的 items 对象并通过 create 方法创建一个项。

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

访问某项资源

通过 Item 对象访问项。 这可以从 容器 对象访问,也可以从 数据库CosmosClient 对象进行更改。

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

按对象访问:

  • 项目:创建、批处理、监视变更提要、读取所有、插入更新或查询项目。
  • (单一):读取、修补、替换或删除项目。

替换一个项目

使用 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 对象的 读取方法读取 最新的数据。

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

删除项

使用 Item 对象的 delete 方法删除项。

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

后续步骤

创建了各种项目后,请使用下一个指南来查询项目。