Linux环境下MongoDB命令详解
MongoDB作为一款流行的NoSQL数据库,在Linux系统中的应用广泛,掌握其核心命令是高效管理数据库的关键,本文将详细介绍Linux环境下MongoDB的常用命令,涵盖服务管理、数据库操作、集合管理、文档操作及索引维护等方面,帮助用户系统化掌握MongoDB的使用技巧。

MongoDB服务管理
在Linux系统中,MongoDB通常以系统服务的形式运行,通过命令行可以轻松启动、停止或重启服务。
-
启动MongoDB服务
使用systemctl命令是现代Linux发行版的推荐方式:sudo systemctl start mongod
若使用
service命令(适用于旧版系统):sudo service mongod start
-
停止MongoDB服务
sudo systemctl stop mongod
-
重启MongoDB服务
sudo systemctl restart mongod
-
设置开机自启
sudo systemctl enable mongod
-
查看服务状态
sudo systemctl status mongod
MongoDB shell连接与基本操作
MongoDB提供了交互式shell工具mongo(新版为mongosh),用于直接操作数据库。
-
连接MongoDB服务
默认连接本地服务:mongosh
指定主机和端口:
mongosh --host 192.168.1.100 --port 27017
-
显示数据库列表
show dbs
-
切换数据库
use mydatabase
若数据库不存在,插入数据时会自动创建。
-
查看当前数据库
db
-
删除数据库

db.dropDatabase()
集合管理
集合是MongoDB中存储文档的容器,支持动态创建与管理。
-
创建集合
db.createCollection("mycollection")插入数据时也会自动创建集合:
db.mycollection.insertOne({name: "test", value: 100}) -
查看集合列表
show collections
-
删除集合
db.mycollection.drop()
-
集合统计信息
db.mycollection.stats()
文档操作
文档是MongoDB的数据核心,支持增删改查操作。
-
插入文档
- 插入单个文档:
db.users.insertOne({name: "Alice", age: 25, city: "Beijing"}) - 插入多个文档:
db.users.insertMany([ {name: "Bob", age: 30, city: "Shanghai"}, {name: "Charlie", age: 28, city: "Guangzhou"} ])
- 插入单个文档:
-
查询文档
- 查询所有文档:
db.users.find()
- 条件查询(如年龄大于25):
db.users.find({age: {$gt: 25}}) - 投影查询(仅返回name和city字段):
db.users.find({}, {name: 1, city: 1, _id: 0})
- 查询所有文档:
-
更新文档
- 更新单个文档:
db.users.updateOne({name: "Alice"}, {$set: {age: 26}}) - 更新多个文档:
db.users.updateMany({city: "Beijing"}, {$set: {country: "China"}})
- 更新单个文档:
-
删除文档
- 删除单个文档:
db.users.deleteOne({name: "Bob"}) - 删除多个文档:
db.users.deleteMany({age: {$lt: 25}})
- 删除单个文档:
索引优化
索引是提升查询性能的关键工具。
-
创建索引
- 单字段索引:
db.users.createIndex({name: 1}) - 复合索引:
db.users.createIndex({name: 1, age: -1})
- 单字段索引:
-
查看索引
db.users.getIndexes()
-
删除索引

db.users.dropIndex({name: 1}) -
分析查询性能
db.users.find({name: "Alice").explain("executionStats")
用户与权限管理
MongoDB支持基于角色的访问控制(RBAC)。
-
创建管理员用户
use admin db.createUser({ user: "admin", pwd: "password123", roles: [{role: "userAdminAnyDatabase", db: "admin"}] }) -
创建普通用户
use mydatabase db.createUser({ user: "readonly", pwd: "pass123", roles: [{role: "read", db: "mydatabase"}] }) -
认证登录
mongosh -u admin -p --authenticationDatabase admin
数据备份与恢复
-
备份数据库
mongodump --db mydatabase --out /backup/
-
恢复数据库
mongorestore --db mydatabase /backup/mydatabase/
-
备份整个服务
mongodump --host 192.168.1.100 --port 27017 --out /full_backup/
常用维护命令
-
查看MongoDB版本
db.version()
-
服务器状态
db.serverStatus()
-
集合验证
db.mycollection.validate()
-
修复数据库
mongod --repair --dbpath /data/db/
熟练掌握Linux环境下的MongoDB命令,是高效管理和运维数据库的基础,本文从服务管理、数据库操作到性能优化,系统梳理了常用命令及其应用场景,用户可根据实际需求结合命令参数灵活运用,进一步提升MongoDB的使用效率。
















