掌握以下命令,即可完成 90% 的 MongoDB 日常操作。建议结合 MongoDB 官方文档 深入学习聚合、索引优化、事务等高级功能

一、连接与帮助

# 连接本地 MongoDB(默认端口 27017)(旧版)
mongo
# 远程连接
mongo host:prot

# 连接本地 MongoDB(默认端口 27017)(新版)
mongosh
# 连接远程 MongoDB
mongosh "mongodb://username:password@host:port/database"

help             # 查看帮助
db.help()        # 数据库方法帮助
db.collection.help()  # 集合方法帮助

二、数据库(Database)操作

# 查看所有数据库
show dbs

# 切换/创建数据库(若不存在则创建 注意:不会立即创建数据库,只有插入第一条数据后才会真正创建)
use db_name

# 查看当前数据库
db

# 删除当前数据库
db.dropDatabase()

三、集合(Collection)操作

# 查看当前数据库所有集合
show collections

# 创建集合(可选,插入文档时自动创建)
db.createCollection("users")

# 删除集合
db.users.drop()

四、文档(Document)操作(CRUD)

# 新增 install
# 插入单条文档
db.users.insertOne({ name: "Alice", age: 25, email: "alice@example.com" })
# 插入多条文档
db.users.insertMany([
  { name: "Bob", age: 30 },
  { name: "Charlie", age: 35 }
])

# 查询 find
# 格式化输出(推荐)
db.users.find().pretty()
# 条件查询:age = 25
db.users.find({ age: 25 })
# 条件查询:age > 30
db.users.find({ age: { $gt: 30 } })
# 只返回 name 字段(1 表示包含,0 表示排除)
db.users.find({}, { name: 1, _id: 0 })
# 限制结果数量
db.users.find().limit(5)
# 跳过前 N 条
db.users.find().skip(10)

# 更新 update
# 更新单条(默认只更新第一条匹配的)
db.users.updateOne(
  { name: "Alice" },
  { $set: { age: 26 } }
)
# 更新多条
db.users.updateMany(
  { age: { $lt: 18 } },
  { $set: { status: "minor" } }
)
# 替换整个文档(慎用)
db.users.replaceOne({ name: "Alice" }, { name: "Alice New", age: 27 })

# 删除 delete
# 删除单条
db.users.deleteOne({ name: "Bob" })
# 删除多条
db.users.deleteMany({ age: { $lt: 18 } })
# 删除所有文档(清空集合)
db.users.deleteMany({})

五、常用查询操作符

操作符

说明

示例

$eq

等于

{ age: { $eq: 25 } }

$ne

不等于

{ age: { $ne: 30 } }

$gt, $gte

大于 / 大于等于

{ age: { $gt: 20 } }

$lt, $lte

小于 / 小于等于

{ age: { $lte: 40 } }

$in

在列表中

{ name: { $in: ["Alice", "Bob"] } }

$nin

不在列表中

{ name: { $nin: ["Charlie"] } }

$exists

字段是否存在

{ email: { $exists: true } }

$regex

正则匹配

{ name: { $regex: /^A/ } }

六、聚合与统计(Aggregation)

# 统计总人数
db.users.countDocuments()

# 按年龄分组统计
db.users.aggregate([
  { $group: { _id: "$age", count: { $sum: 1 } } }
])

# 排序 + 限制
db.users.find().sort({ age: -1 }).limit(5)  // -1 降序,1 升序

七、用户与权限(Admin 常用)

# 创建用户(需在 admin 库操作)
use admin
db.createUser({
  user: "admin",
  pwd: "password123",
  roles: [{ role: "root", db: "admin" }]
})

# 认证登录
db.auth("admin", "password123")

八、其他实用命令

# 查看 MongoDB 版本
db.version()

# 查看服务器状态
db.serverStatus()

# 查看当前连接信息
db.getMongo()

# 退出 shell
exit

九、建立索引

# 单字段索引
db.users.createIndex({ name: 1 })  

# 复合索引
db.users.createIndex({ name: 1, age: -1 })  

备注:

  1. 所有命令区分大小写(如 find() 不能写成 Find())。

  2. 文档使用 BSON 格式,支持嵌套对象、数组。

  3. _id 字段自动生成(ObjectId 类型),不可重复。

  4. 索引可大幅提升查询性能