MongoDB 基础命令
掌握以下命令,即可完成 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({})五、常用查询操作符
六、聚合与统计(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 }) 备注:
所有命令区分大小写(如
find()不能写成Find())。文档使用 BSON 格式,支持嵌套对象、数组。
_id 字段自动生成(ObjectId 类型),不可重复。
索引可大幅提升查询性能
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 照夜白