菜鸟科技网

如何进入MongoDB命令行界面?

核心命令

最基本、最常用的命令是 mongosh

如何进入MongoDB命令行界面?-图1
(图片来源网络,侵删)
mongosh

执行此命令后,MongoDB 服务正在运行,你将看到类似下面的欢迎界面,并进入 mongosh 命令提示符:

Current Mongosh Version:       r7.0.4
...
To help improve the quality of Mongosh, please run: db.runCommand({ buildInfo: 0, featureCompatibilityVersion: 0 })
For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/

你的光标会变成 >,表示你已经成功进入了 MongoDB Shell,并且默认连接到了 test 数据库。


连接到指定的 MongoDB 实例

在实际应用中,你的 MongoDB 服务可能运行在不同的主机、端口或需要身份验证,这时,你需要在启动 mongosh 时提供相应的连接选项。

连接到不同主机和端口

如果你的 MongoDB 服务没有运行在本地(localhost)的默认端口(27017)上。

如何进入MongoDB命令行界面?-图2
(图片来源网络,侵删)

语法:

mongosh <hostname>:<port>

示例: 连接到 IP 地址为 168.1.100,端口为 27018 的 MongoDB 服务。

mongosh 192.168.1.100:27018

连接到需要身份验证的数据库(最常见)

如果你的 MongoDB 启用了用户认证(生产环境强烈推荐),你需要提供用户名、密码以及认证数据库。

语法:

如何进入MongoDB命令行界面?-图3
(图片来源网络,侵删)
mongosh "mongodb://<username>:<password>@<hostname>:<port>/<authDb>?authMechanism=SCRAM-SHA-256"
  • <username>: 你的数据库用户名。
  • <password>: 你的数据库密码。
  • <hostname>: 数据库服务器地址。
  • <port>: 数据库服务端口。
  • <authDb>: 认证数据库,这是存储该用户信息的数据库,通常是 admin,但也可以是其他数据库。
  • authMechanism: 认证机制,SCRAM-SHA-256 是目前最常用和安全的。

示例: 连接到运行在 localhost:27017 的服务,使用 admin 数据库中的 myUser 用户进行认证。

mongosh "mongodb://myUser:myPassword@localhost:27017/?authSource=admin"

注意: 密码中如果包含特殊字符(如 , , ),可能会导致连接字符串解析错误,建议对密码进行 URL 编码,或者使用引号将整个连接字符串包裹起来。


连接到 MongoDB Atlas (云服务)

如果你使用的是 MongoDB Atlas 云数据库,连接方式略有不同,你需要从 Atlas 控制台获取连接字符串。

  1. 登录你的 MongoDB Atlas 账户。
  2. 进入你的集群页面,点击 "Connect" (连接) 按钮。
  3. 选择 "Connect your application" (连接你的应用程序)。
  4. 选择 "Node.js" 驱动,并复制 "Connection string" (连接字符串)。
  5. 连接字符串通常长这样: mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority
  6. 在终端中直接使用这个完整的连接字符串:
mongosh "mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority"

注意: Atlas 默认会连接到 test 数据库,但通常你想要连接到特定的数据库,你可以在连接字符串末尾的 mongodb.net/ 后面直接加上数据库名称,/myDatabase?retryWrites=true&w=majority


进入 Shell 后的基本操作

一旦你成功进入 mongosh,你可以执行以下命令来操作数据库:

命令 描述 示例
show dbsshow databases 列出所有数据库 show dbs
use <databaseName> 切换到指定数据库,如果不存在,则在首次写入数据时创建。 use myApp
db 显示当前正在使用的数据库名称。 db
show collections 列出当前数据库中的所有集合(类似关系数据库中的表)。 show collections
db.<collectionName>.find() 查询集合中的所有文档。 db.users.find()
exitCtrl + C 退出 MongoDB Shell。 exit

常见问题与解决方案

'mongosh' 不是内部或外部命令...

这个错误表明你的系统中没有安装 MongoDB,或者 mongosh 的安装路径没有被添加到系统的环境变量 PATH 中。

解决方案:

  • 确保已安装 MongoDB: 如果你只是安装了 MongoDB Server,你可能需要单独安装 mongosh,请访问 MongoDB 下载页面 下载并安装 mongosh
  • 检查 PATH: 确保 mongosh 的可执行文件所在的目录(C:\Program Files\MongoDB\Shell\bin 在 Windows 上,或 /usr/local/bin 在 macOS/Linux 上)已添加到系统的 PATH 环境变量中。

Failed to connect to server...

这个错误表示 mongosh 无法连接到指定的 MongoDB 实例。

可能的原因及解决方案:

  • 服务未启动: MongoDB 服务器可能没有运行。
    • 解决方案: 启动 MongoDB 服务,在 Windows 上可能是通过 "服务" 应用,在 macOS/Linux 上可能是 sudo systemctl start mongod
  • 地址或端口错误: 你提供的主机名或端口号不正确。
    • 解决方案: 再次检查 MongoDB 服务的配置文件(通常是 mongod.conf)中的 bindIpport 设置,确保你的连接参数与之匹配。
  • 防火墙阻止: 本地或网络防火墙可能阻止了到 27017 端口的连接。
    • 解决方案: 检查并配置防火墙规则,允许流量进出 MongoDB 的端口。
  • 身份验证失败: 用户名、密码或认证数据库错误。
    • 解决方案: 仔细核对用户凭据和 authSource 数据库名。

希望这份详细的指南能帮助你顺利进入 MongoDB 命令行!

分享:
扫描分享到社交APP
上一篇
下一篇