跳至主要内容

MongoDB Atlas CLI:通过命令行管理数据库

MongoDB Atlas CLI 提供比网页界面更快捷的替代方案。您可以直接在终端中运行并自动化数据库管理任务。
· 12分钟 阅读

使用 AI 探索

MongoDB Atlas 是一项基于云的数据库服务,可让您部署、管理并扩展 MongoDB 数据库。您可以通过基于网页的 Atlas UI 管理 Atlas,或使用 Atlas CLI——一款命令行工具,通过命令完成同样的任务。

MongoDB Atlas CLI 是 Atlas UI 的更快速替代方式。您可以直接在终端中运行并自动化数据库管理任务。

本文将带您使用 Atlas CLI 管理数据库。

前提条件

开始之前,请确保您具备:

  • 一个 MongoDB Atlas 账户。
  • 基本的命令行使用经验。
  • 适用于您操作系统的 Atlas CLI 安装要求。

CLI 命令结构

MongoDB Atlas CLI 遵循一致的命令结构:

atlas [command] [subcommand] [flags]

在不带任何子命令或参数时运行命令,CLI 会显示帮助信息,其中包括:

  • 用法:如何使用该命令。
  • 别名:该命令的替代名称。
  • 可用命令:可运行的子命令。
  • 标志:特定命令可用的选项。
  • 全局标志:在所有 CLI 命令中均可使用的选项。

例如,如果您运行:

atlas clusters

您将看到类似如下的响应:

Manage clusters for your project. The clusters command provides access to your cluster configurations. You can create, edit, and delete clusters.

Usage:
  atlas clusters [command]

Aliases:
  clusters, cluster

Available Commands:
  list              Return all clusters for your project.
  describe          Return the details for the specified cluster for your project.
  advancedSettings  Manage advanced configuration settings for your cluster.
 ...

Flags:
  -h, --help   help for clusters

Global Flags:
  -P, --profile string   Name of the profile to use from your configuration file. To learn about profiles for the Atlas CLI, see https://dochub.mongodb.org/core/atlas-cli-save-connection-settings.

Use "atlas clusters [command] --help" for more information about a command.

Atlas CLI 中的命令名、参数和标志名区分大小写。请按照示例中的大小写精确输入——例如使用 --orgId 而不是 --orgID。

创建 MongoDB 部署

部署是一个正在运行的 MongoDB 实例,用于存储和提供您的数据。每个部署包含数据库服务器、存储、网络以及自动备份。MongoDB Atlas 负责基础设施管理,您可以专注于使用数据库,而无需维护服务器。

要创建 MongoDB 部署,请先安装或更新 Atlas CLI,然后运行以下命令:

atlas setup

atlas setup 命令将引导您完成交互式流程。它会提示您进行配置选择,并创建项目、预配集群,同时配置基础安全设置。

对现有部署进行身份验证

如果您已有 MongoDB Atlas 部署并希望通过 CLI 管理,您需要先进行身份验证。要登录,请运行:

atlas auth login

该命令会提示您选择身份验证类型,然后提供一次性验证码。复制该验证码,并在浏览器提示时粘贴。例如:

atlas auth login
? Select authentication type: UserAccount

To verify your account, copy your one-time verification code:
QPWF-6GT4

Paste the code in the browser when prompted to activate your Atlas CLI. Your code will expire after 3 minutes.

To continue, go to https://account.mongodb.com/account/connect

Press Enter to open the browser and complete authentication...
Successfully logged in as [email protected].

完成身份验证后,您将选择默认的组织和输出格式。CLI 会保存您的会话,但会定期过期。当您看到 "session expired" 错误时,请再次运行 atlas auth login。

为多个环境管理配置文件

配置文件可让您在同一 CLI 安装中管理多个 MongoDB Atlas 环境。每个配置文件都存储一个环境的连接设置,例如开发、预发布或生产。

借助配置文件,您可以在环境之间快速切换,而无需重新认证或更改配置文件。这在您为开发流程的不同阶段维护独立的 MongoDB Atlas 项目或组织时尤其有用。

常见做法是为每个环境创建单独的 Atlas 项目,并用配置文件进行管理,例如:

  • 开发配置文件:指向用于测试的小型 M0 集群的开发项目。
  • 预发布配置文件:指向与生产配置一致的预发布项目。
  • 生产配置文件:指向具有生产级集群的生产项目。

为不同环境创建配置文件

首次运行 atlas auth login 时,CLI 会创建默认配置文件。要为其他环境创建更多配置文件,请使用 --profile 标志:

atlas auth login --profile dev

这会创建名为 "dev" 的配置文件,并引导您完成认证流程。对每个环境重复此操作:

atlas auth login --profile staging
atlas auth login --profile production

每个配置文件都会保存各自的身份验证凭据、默认项目和组织设置。

列出可用配置文件

要查看所有已配置的配置文件,请运行:

atlas config list

这将显示您创建的所有配置文件名称。

查看配置文件详情

要查看某个配置文件的配置,请运行:

atlas config describe <profileName>

例如:

atlas config describe dev

这将显示该配置文件的设置,包括默认组织和项目 ID。

在配置文件之间切换

要在命令中使用特定配置文件,请添加 --profile 标志:

atlas clusters list --profile production

这将使用生产配置文件的凭据和设置列出集群。

您也可以设置默认配置文件,这样无需在每个命令中指定:

atlas config set --profile staging

设置默认后,所有命令都会使用该配置文件,除非您通过 --profile 标志覆盖。

更新配置文件设置

要修改配置文件的配置,请运行:

atlas config set <setting> <value> --profile <profileName>

例如,为 dev 配置文件设置默认项目:

atlas config set project_id 5f8e8d9a1b2c3d4e5f6g7h8i --profile dev

重命名配置文件

要重命名配置文件,请运行:

atlas config rename <oldName> <newName>

例如:

atlas config rename dev development

管理项目

MongoDB Atlas 中的项目用于组织您的集群、用户和设置。可以将项目视为将相关数据库资源归集到一起的容器。

每个项目可以包含多个集群,并拥有自己的一套用户和访问控制。当您有不同的应用、环境或团队需要隔离的数据库资源时,这种分离非常有用。

创建项目

要创建新项目,请运行:

atlas projects create <projectName> [options]

使用能体现项目用途的描述性名称,例如 "ecommerce-transactions" 或 "mobile-app-staging"。

[options] 包含修改项目创建方式和位置的标志。例如,您可以指定要在哪个组织中创建项目:

atlas projects create mobile-app-staging --orgId <organizationId>

--orgId 标志用于指定要在其中创建项目的组织。除非您已设置默认组织,否则这是必填项。您可以运行 atlas organizations list 命令来获取组织及其 Id 列表。

In all examples, replace placeholders like <projectId>, <clusterName>, and <username> with your actual project, cluster, or user names and identifiers.

更新项目

要更新项目设置,请使用:

atlas projects update <projectId> [options]

例如,您可以使用 --name 标志来更改项目名称:

atlas projects update <projectId> --name newProjectName

列出项目

要列出组织中的所有项目,请使用:

atlas projects list [options]

上述命令可将 --orgId 作为选项,用于指定要从哪个组织列出项目:

atlas projects list --orgId <organizationId>

您也可以控制输出格式,例如以 JSON 显示结果:

atlas projects list --output json

删除项目

您可以使用 Atlas CLI 命令删除项目。

atlas projects delete <projectId> --orgId <organizationId>

无法删除仍包含活动集群的项目。因此,在删除项目之前,请确保先删除其中的所有集群。

管理集群

集群是存储您数据的一组 MongoDB 服务器。Atlas 负责管理集群的基础设施、复制和备份。

创建集群

要创建新集群,请运行:

atlas clusters create <clusterName> [options]

[options] 包含用于指定集群配置的标志。例如,您可以添加选项来配置云服务商、区域和 MongoDB 价格层级:

atlas clusters create myCluster --provider AWS --region US_EAST_1 --tier M0

在该命令中,--provider 标志指定云服务商,例如 AWS、GCP 或 Azure。--region 标志指定集群部署的区域。--tier 标志指定集群规模。

如果您尚未设置默认项目,请包含 --projectId 标志:

atlas clusters create myCluster --projectId <projectId> --provider AWS --region US_EAST_1 --tier M0

查看集群详情

要查看特定集群的详细信息,请运行:

atlas clusters describe <clusterName> --projectId <projectId>

该命令会显示集群的配置、规模、区域以及连接字符串。

列出集群

要列出项目中的所有集群,请运行:

atlas clusters list --projectId <projectId>

除非您已使用以下命令设置默认项目,否则需要 --projectId 标志:

atlas config set project_id <projectId>

暂停集群

您可以在不删除集群的情况下临时暂停它。这会停止集群的运行,但会保留您的数据和配置:

atlas clusters pause <clusterName> --projectId <projectId>

删除集群

要永久删除集群,请运行:

atlas clusters delete <clusterName> --projectId <projectId>

创建集群后,您必须先配置网络安全,才能连接到它。

管理 IP 访问列表配置

IP 访问列表用于控制哪些 IP 地址可以连接到您的 MongoDB Atlas 集群。每个项目最多可有 200 条 IP 访问列表条目。您可以添加单个 IP 地址、CIDR 表示的地址段,或 AWS 安全组 ID。CIDR 表示的地址段使用基础 IP 和前缀定义一个 IP 地址块,例如 192.168.0.0/24。AWS 安全组 ID 允许来自指定 AWS 安全组内所有资源的访问。

要管理 IP 访问列表,您必须在项目中拥有项目所有者(Project Owner)权限。

将 IP 地址添加到访问列表

要将您当前的 IP 地址添加到访问列表,请运行:

atlas accessLists create --currentIp --projectId <projectId>

--currentIp 标志会自动添加运行该命令的机器的 IP 地址。当您需要从开发机器快速访问时,这非常实用。

要添加特定 IP 地址,请运行:

atlas accessLists create <ipAddress> --type ipAddress --projectId <projectId>

<ipAddress> 是您希望允许的 IP 地址。例如:

atlas accessLists create 192.0.2.15 --type ipAddress --comment "Office network" --projectId <projectId>

--comment 标志可添加描述,便于您后续识别该条目。

要使用 CIDR 表示法添加一段 IP 地址,请运行:

atlas accessLists create <cidrBlock> --type cidrBlock --projectId <projectId>

例如:

atlas accessLists create 73.231.201.0/24 --type cidrBlock --comment "Development servers" --projectId <projectId>

创建临时访问列表条目

要添加在设定时间后自动过期的 IP 地址,请使用 --deleteAfter 标志。您可以将过期时间设置为未来七天内的任意时间:

atlas accessLists create <ipAddress> --type ipAddress --deleteAfter <isoDateTime> --projectId <projectId>

--deleteAfter 标志接受 ISO-8601 格式的日期。例如:

atlas accessLists create 192.0.2.20 --type ipAddress --deleteAfter 2025-12-31T23:59:59Z --comment "Temporary contractor access" --projectId <projectId>

到达指定日期和时间后,MongoDB Atlas 会自动移除该条目。

列出 IP 访问列表条目

要查看项目中的所有 IP 访问列表条目,请运行:

atlas accessLists list --projectId <projectId>

要查看特定条目的详细信息,请运行:

atlas accessLists describe <entry> --projectId <projectId>

<entry> 是您想查看的 IP 地址、CIDR 段或 AWS 安全组 ID。

删除 IP 访问列表条目

要从访问列表中移除某个 IP 地址,请运行:

atlas accessLists delete <entry> --projectId <projectId>

管理用户和角色

角色为特定资源上的一组操作授予权限。用户是被授予一个或多个角色的实体,这些角色决定了其在数据库中的访问权限。

要配置数据库用户和角色,您必须在 MongoDB Atlas 中拥有组织所有者(Organization Owner)、项目所有者(Project Owner)或项目数据库访问管理员(Project Database Access Admin)权限。

管理用户

要创建数据库用户,请运行:

atlas dbusers create [builtInRole] [options]

[builtInRole] 是要分配给用户的一个或多个内置角色。[options] 包含用于指定用户凭据和配置的标志。例如:

atlas dbusers create --username myUser --password myPassword --role readWriteAnyDatabase --projectId <projectId>

--username 标志用于指定用户名。--password 标志用于指定密码。--role 标志用于指定要分配的角色。在此示例中,用户名为 myUser,密码为 myPassword。

要列出项目中的所有数据库用户,请运行:

atlas dbusers list --projectId <projectId>

要查看特定数据库用户的详细信息,请运行:

atlas dbusers describe <username> --projectId <projectId>

您也可以更新数据库用户。例如,要更新用户密码,请运行:

atlas dbusers update myUser --password newPassword --projectId <projectId>

要更新用户的角色,请运行:

atlas dbusers update myUser --role readWriteAnyDatabase --role dbAdmin --projectId <projectId>

要删除特定数据库用户,请运行:

atlas dbusers delete <username> --projectId <projectId>

管理角色

您可以为用户分配两类角色:

  • 内置角色
  • 自定义角色

内置角色

内置角色是 MongoDB Atlas 预定义的角色。它们涵盖了不同数据库用例的常见权限集,例如:

  • read:对特定数据库授予只读访问权限。
  • readWrite:允许读取并修改特定数据库中的数据。
  • readAnyDatabase:对除 local 和 config 外的所有数据库授予只读权限。
  • readWriteAnyDatabase:对所有数据库授予读写权限。
  • dbAdmin:为特定数据库提供管理权限,例如创建索引或查看统计信息。
  • dbAdminAnyDatabase:对所有数据库授予管理权限。
  • clusterAdmin:允许管理整个集群,包括复制和分片。
  • userAdminAnyDatabase:允许在所有数据库中创建和修改用户账户及角色。

您不能编辑或删除内置角色,只能将其分配给用户。创建用户时要分配内置角色,请使用 --role 标志指定角色:

atlas dbusers create --username app-reader --password myPassword --role readAnyDatabase --projectId <projectId>

要为现有用户分配或更改角色,请运行:

atlas dbusers update app-reader --role readWriteAnyDatabase --projectId <projectId>

有关可分配给用户的更多内置角色,请参阅 [内置角色与权限](https://www.mongodb.com/docs/atlas/mongodb-users-roles-and-privileges/?utm_campaign=devrel&utm_source=third-party-content&utm_medium=cta&utm_content=atlas-cli-datacamp&utm_term=megan.grant)。

自定义角色

当内置角色无法满足需求时,MongoDB Atlas 允许您创建自定义角色。自定义角色定义了一组与您的应用或团队需求匹配的特定权限操作。

创建自定义角色时,请确定用户应访问哪些集合,以及可对资源执行哪些操作——例如读取、插入、更新或删除数据。

在 MongoDB 权限定义中,您必须在 CLI 命令中使用大写的权限操作名称,例如使用 FIND 而非 find。更多用户可在资源上执行的已定义权限操作,请参阅 权限操作。

您可以使用 Atlas CLI 管理自定义角色。

要创建自定义角色,请运行:

atlas customDbRoles create <roleName> [options]

<roleName> 是您要创建的自定义角色名称。[options] 包含用于指定角色权限的标志,例如:

atlas customDbRoles create customAnalyticsRole --privilege [email protected]

上述命令中:

  • customAnalyticsRole 是新自定义角色的名称。您可以选择任何能反映角色用途的描述性名称。
  • --privilege 标志用于指定角色可在资源上执行的操作。
  • 格式为 [email protected],其中 @ 分隔操作与资源。
  • FIND 是 MongoDB 认可的权限操作。
  • myDatabase.users 是权限应用的资源——此处为 myDatabase 数据库中的 users 集合。

要查看自定义角色的详细信息,请运行:

atlas customDbRoles list --projectId <projectId>

上述命令会显示所有自定义角色及其权限。

要更新自定义角色,请运行:

atlas customDbRoles update <roleName> [options]

[options] 包含指定更新内容的标志。例如,要为现有角色新增权限,请运行:

atlas customDbRoles update customAnalyticsRole --privilege [email protected] --privilege [email protected] --projectId <projectId>

上述命令会更新现有的 customAnalyticsRole,授予更多权限。[email protected] 允许该角色读取 analytics 集合中的文档,[email protected] 允许其向 myDatabase 数据库中的 logs 集合添加文档。

--projectId 标志用于指定该角色所属的 MongoDB Atlas 项目。

要删除自定义角色,请运行:

atlas customDbRoles delete <roleName> --projectId <projectId>

将自定义角色分配给用户的过程与分配内置角色类似。使用 atlas dbusers create 或 atlas dbusers update 命令配合 --role 标志:

atlas dbusers create --username analytics-user --password myPassword --role customAnalyticsRole --projectId <projectId>

创建数据库用户并分配角色后,您就可以准备连接到集群了。

获取连接字符串

连接字符串包含您的应用连接到 Atlas 集群所需的信息。该字符串包括集群主机名、认证数据库以及连接选项。

在使用连接字符串之前,请确保您已配置 IP 访问列表并至少创建了一个数据库用户。

获取集群的连接字符串

要检索某个集群的连接字符串,请运行:

atlas clusters connectionStrings describe <clusterName> --projectId <projectId>

该命令将返回您集群的 SRV 连接字符串。

连接字符串格式

MongoDB Atlas 提供两种类型的连接字符串:

标准连接字符串(mongodb://):显式列出所有集群节点。当您需要指定单个服务器地址时使用此格式。

SRV 连接字符串(mongodb+srv://):使用 DNS 自动检索集群信息。推荐使用此格式,因为当集群配置发生变化时,它会自动更新。

使用连接字符串

将连接字符串中的 <username> 和 <password> 替换为您的数据库用户凭据:

mongodb+srv://<username>:<password>@cluster0.example.mongodb.net/

例如,如果您的用户名是 appUser,密码是 securePass123:

mongodb+srv://appUser:[email protected]/

然后,您可以将该连接字符串与 MongoDB 驱动程序、MongoDB Shell 或其他 MongoDB 工具一起使用,以连接到您的集群。

管理备份

备份是您数据库数据的副本,可用于在数据丢失或损坏时恢复集群。Atlas 会按固定计划自动创建备份。

Automated continuous backups are only available for M10+ dedicated clusters. M0 free-tier clusters do not have backup capabilities. M2/M5 shared clusters have basic cloud backups, but not continuous backup. For more information, see [Snapshots for Flex Clusters](https://www.mongodb.com/docs/atlas/backup-restore-cluster/?utm_campaign=devrel&utm_source=third-party-content&utm_medium=cta&utm_content=atlas-cli-datacamp&utm_term=megan.grant#snapshots-for-flex-clusters).

要管理备份,您必须在 Atlas 中拥有组织所有者或项目所有者权限。

创建按需备份

要立即创建备份,请运行:

atlas backups snapshots create <clusterName> --desc "Backup description" --projectId <projectId>

上述命令中,--desc 是用于描述快照的必填标志。

列出可用备份

要列出某个集群的所有备份,请运行:

atlas backups snapshots list <clusterName> --projectId <projectId>

查看备份配置

要查看集群的备份设置,请运行:

atlas backups schedule describe <clusterName> --projectId <projectId>

从备份恢复

要从备份恢复数据,请运行:

atlas backups restores start <clusterName> --snapshotId <snapshotId> --targetClusterName <targetClusterName> --projectId <projectId>

--snapshotId 标志用于指定要恢复的备份。--targetClusterName 标志用于指定要将数据恢复到的集群名称,例如:

atlas backups restores start myCluster --snapshotId 5f8e8d9a1b2c3d4e5f6g7h8i --targetClusterName myCluster-restored --projectId <projectId>

删除备份

要删除某个备份,请运行:

atlas backups snapshots delete <snapshotId> --projectId <projectId>

总结

本文介绍了 CLI 命令结构、创建部署、管理项目与集群、配置用户与角色,以及管理备份。您可以将这些操作组合到脚本中实现自动化,从而更轻松地管理多个环境,并将数据库管理集成到您的开发流程中。

FAQs

我是否需要每次使用 MongoDB Atlas CLI 都进行身份验证?

不需要。运行 atlas auth login 后,CLI 会保存您的会话。但出于安全原因,会话会定期过期。只有当您看到 "session expired" 错误时,才需要重新认证。

我可以将 Atlas CLI 用于免费层(M0)集群吗?

是的,您可以使用 MongoDB Atlas CLI 管理免费层集群的大多数操作,例如创建用户、管理角色和集群配置。但免费或共享层集群不支持备份操作。

MongoDB Atlas 用户角色与数据库角色有何区别?

Atlas 用户角色(如组织所有者、项目所有者、项目集群管理员)控制谁可以通过 UI、CLI 或 API 管理 MongoDB Atlas 平台本身。数据库角色(如 read、readWrite 以及自定义角色)控制数据库用户在连接 MongoDB 数据库时可以执行的操作。您需要具备相应的 Atlas 用户角色,才能为数据库用户创建并分配数据库角色。

我能否使用同一 CLI 安装管理多个 MongoDB Atlas 项目?

可以。您可以使用一个 CLI 安装管理多个项目。您可以在认证期间设置默认项目,或在命令中包含 --projectId 标志来指定要使用的项目。要处理多个组织,请使用 --orgId 标志。您可以使用 atlas projects list 列出所有项目,使用 atlas organizations list 列出所有组织。

如何查找我的组织 ID 和项目 ID?

运行 atlas organizations list 可查看您所有的组织及其 ID。运行 atlas projects list 可查看您所有的项目及其 ID。

Damilola Oladele

作者

Damilola Oladele

主题