你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
开始通过 JavaScript 使用 Azure Cosmos DB for NoSQL
适用范围: NoSQL
本文介绍如何使用 JavaScript SDK 连接到 Azure Cosmos DB for NoSQL。 连接后,可对数据库、容器和项执行操作。
包 (npm) | 示例 | API 参考 | 库源代码 | 反馈
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- Azure Cosmos DB for NoSQL 帐户。 创建 API for NoSQL 帐户。
- Node.js LTS
- Azure 命令行接口 (CLI) 或 Azure PowerShell
设置本地项目
在 bash shell 中为 JavaScript 项目创建新目录。
mkdir cosmos-db-nosql-javascript-samples && cd ./cosmos-db-nosql-javascript-samples
通过将
npm init
命令与控制台模板一起使用,创建一个新的 JavaScript 应用程序。npm init -y
安装 Azure Cosmos DB for NoSQL JavaScript SDK 所需的依赖项。
npm install @azure/cosmos
连接到 Azure Cosmos DB for NoSQL
若要连接到 Azure Cosmos DB 的 API for NoSQL,请创建 CosmosClient
类的实例。 此类是针对数据库执行所有操作的起点。
若要使用 Microsoft Entra 连接到 NoSQL 帐户 的 API,请使用安全主体。 主体的确切类型将取决于应用程序代码的托管位置。 下表可用作快速参考指南。
应用程序的运行位置 | 安全主体 |
---|---|
本地计算机(开发和测试) | 用户标识或服务主体 |
Azure | 托管标识 |
Azure 外部的服务器或客户端 | 服务主体 |
导入 @azure/identity
@azure/identity npm 包包含所有 Azure SDK 库之间共享的核心身份验证功能。
使用
npm install
命令导入 @azure/identity npm 包。npm install @azure/identity
在代码编辑器中,添加依赖项。
const { DefaultAzureCredential } = require("@azure/identity");
使用默认凭据实现创建 CosmosClient
如果在本地计算机上进行测试,或者应用程序将在 Azure 服务上运行,并直接支持托管标识,则通过创建 DefaultAzureCredential
实例来获取 OAuth 令牌。 使用 COSMOS_ENDPOINT
环境变量和 TokenCredential 对象作为参数,创建 CosmosClient 类的新实例。
const { CosmosClient } = require("@azure/cosmos");
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new DefaultAzureCredential();
const cosmosClient = new CosmosClient({
endpoint,
aadCredentials: credential
});
生成应用程序
在生成应用程序时,代码主要与四种类型的资源交互:
API for NoSQL 帐户,它是 Azure Cosmos DB 数据的唯一顶级命名空间。
数据库,它用于组织帐户中的容器。
容器,它包含数据库中的一组单个项。
项,它表示容器中的 JSON 文档。
以下图示显示了这些资源之间的关系。
顶部是显示 Azure Cosmos DB 帐户的层次结构示意图。 该帐户包含两个子数据库节点。 其中一个数据库节点包含两个子容器节点。 另一个数据库节点包含单个子容器节点。 该容器节点包含三个子项节点。
每种类型的资源由一个或多个关联的类表示。 下面列出了最常见的类:
类 | 说明 |
---|---|
CosmosClient |
此类为 Azure Cosmos DB 服务提供客户端逻辑表示。 此客户端对象用于对服务进行配置和执行请求。 |
Database |
此类是对服务中可能存在或可能不存在的数据库的引用。 在尝试访问该数据库或对其执行操作时,会在服务器端验证该数据库。 |
Container |
此类是对服务中可能不存在的容器的引用。 在尝试使用该容器时,会在服务器端对其进行验证。 |
以下指南介绍了如何使用上述每个类来生成应用程序。
指南 | 说明 |
---|---|
创建数据库 | 创建数据库 |
创建容器 | 创建容器 |
创建和读取项 | 点读特定项 |
查询项 | 查询多个项 |