初学者必备的 MongoDB 管理命令

使用 `mongosh` shell 掌握 MongoDB 的基本管理命令。本指南涵盖了初学者所需的基本任务,包括数据库切换、集合的创建/删除、带有角色的用户管理,以及像 `serverStatus` 这样的关键系统运行状况检查。学习安全管理您的 NoSQL 环境所需的那些基本命令。

32 浏览量

MongoDB 初学者必备管理命令

MongoDB 是一种领先的 NoSQL 文档数据库,以其灵活性和可扩展性而闻名。虽然开发人员通常专注于 CRUD(创建、读取、更新、删除)操作,但有效管理数据库环境在很大程度上依赖于理解重要的管理命令。本指南为初学者介绍了数据库管理、用户管理和系统运行状况检查所需的关键命令,以确保您的 MongoDB 实例平稳安全地运行。

掌握这些管理任务对于任何从简单的本地开发转向生产环境的人来说都至关重要。我们将探讨如何与 mongosh shell 交互来管理数据库、集合、用户并执行必要的系统诊断。


访问 MongoDB Shell (mongosh)

运行管理命令的主要接口是 MongoDB Shell,通常使用 mongosh 命令访问。在这里,您可以直接针对 MongoDB 实例执行基于 JavaScript 的命令。

要连接到运行在默认端口 (27017) 上的本地 MongoDB 实例,只需键入:

mongosh

连接成功后,您将看到 > 提示符,表示您已准备好发出命令。

数据库管理命令

管理当前使用的数据库和查看现有数据库是基本管理任务。

列出所有数据库

要查看 MongoDB 服务器上当前存在的数据库列表,请使用 show dbs 命令:

> show dbs
admin    40.00 KiB
config   72.00 KiB
local    72.00 KiB
myAppDB 100.00 KiB

切换数据库

在创建数据库或集合之前,您必须使用 use 命令切换到目标数据库。如果数据库不存在,MongoDB 将在首次插入数据时隐式创建它。

> use myAppDB
switched to db myAppDB

查看当前数据库

要确认您当前操作的数据库上下文,请使用 db

> db
myAppDB

删除数据库

警告: 此操作将永久删除指定数据库中的所有数据。请极其谨慎使用,尤其是在生产环境中。

要删除当前数据库(db 命令返回的数据库):

> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }

集合管理命令

集合类似于关系数据库中的表。使用 db 对象简写可以轻松管理它们。

列出集合

在使用特定数据库时,使用 show collections(或旧版本的等效命令 db.getCollectionNames())列出其中的所有集合:

> show collections
users
products
orders

创建集合

集合通常在第一次插入数据时自动创建。但是,您可以使用 db.createCollection() 显式创建一个集合,以控制验证规则或上限。

// 创建一个名为 'logs' 的标准集合
> db.createCollection("logs")
{ "ok" : 1 }

删除集合

要完全删除一个集合:

> db.logs.drop()
true

用户和安全管理

对于任何打算用于生产环境的数据库,通过用户身份验证来保护访问是强制性的。用户管理通常在 admin 数据库或用户应具有权限的特定数据库中进行。

切换到 Admin 数据库以创建用户

admin 数据库中创建管理员用户是标准做法,但基于角色的用户可以在应用程序数据库中创建。

> use admin
switched to db admin

创建用户

使用 db.createUser() 添加新用户。这需要指定用户名、安全密码和分配的角色。

> db.createUser(
...   {
...     user: "appAdmin",
...     pwd: passwordPrompt(), // 安全地提示输入密码
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
...   }
... )
  • 提示:强烈建议使用 passwordPrompt(),而不是将明文密码嵌入脚本中。

列出用户

查看当前数据库中的现有用户:

> show users

系统监控和诊断

管理员需要方法来检查正在运行的 MongoDB 实例的运行状况、状态和配置。

检查服务器状态

serverStatus 命令返回一个全面的文档,详细说明服务器运行的统计信息,包括内存使用、连接和操作。

> db.serverStatus()
// 输出将是一个包含指标的大型 JSON 文档。

查看当前连接

要查看活动的客户端连接,您可以查询 currentOp 命令或在 serverStatus 的连接部分中查找。查看当前操作的直接方法是:

> db.currentOp()

检查配置

查看当前应用于实例的配置设置:

> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })

总结和后续步骤

这些基本命令——涵盖数据库切换、集合管理、用户创建和基本监控——构成了有效 MongoDB 管理的基础。虽然 mongosh 提供即时反馈,但高级监控通常需要与 MongoDB Compass 集成或使用 MongoDB Atlas 界面进行可视化诊断。

最佳实践: 始终使用凭据进行连接,并将用户角色限制为所需的最低权限(最小权限原则)。

在非生产环境中开始练习这些命令,以便在管理关键数据存储之前建立信心。