Mongo常用命令

1367 字
7 分钟
Mongo常用命令

MongoDB 常用命令#

目录#

  1. 一、基本概念
  2. 二、mongosh 基本命令
  3. 三、安装
  4. 四、数据库和集合CRUD 操作
  5. 五、聚合操作 (Aggregation)
  6. 六、过滤条件 / 查询操作符
  7. 七、常用查询示例

一、基本概念#

术语说明类比 SQL
数据库 (Database)集合的容器数据库
集合 (Collection)数据库中的一组文档表 (Table)
文档 (Document)集合中的一条记录行 (Row)
字段 (Field)文档中的键值对列 (Column)

注意:MongoDB 的文档不需要有相同的结构(Schema-less),且一个字段可以是 JSON 对象或数组。


二、mongosh 基本命令#

Terminal window
mongosh # 打开连接到本地实例的 MongoShell
show databases / show dbs # 显示所有数据库
use <dbname> # 切换到指定数据库
db # 显示当前使用的数据库名称
cls # 清屏
show collections # 显示当前数据库中的所有集合
db.dropDatabase() # 删除当前数据库
exit # 退出 mongosh 会话

三、安装#

Linux#

YUM (CentOS/RHEL)

Terminal window
sudo yum install -y mongodb-org

APT (Debian/Ubuntu)

Terminal window
sudo apt-get update
sudo apt-get install -y mongodb-org

DNF (Fedora)

Terminal window
sudo dnf install mongodb-org

四、数据库和集合CRUD 操作#

4.1 数据库#

命令说明示例
use <数据库名>切换数据库,若数据库不存在,不会立即创建,仅切换上下文use pi
db显示当前数据库db
show dbs显示所有数据库

4.2 集合#

命令说明示例
db.createCollection(name, options)创建集合db.createCollection(“users”)
  • 创建带选项的集合,options可以是如下参数
参数名类型描述示例值
capped布尔值是否创建一个固定大小的集合true
size数值集合的最大大小(以字节为单位)。仅在capped为true时有效104857600 (10MB)
max数值集合中允许的最大文档数。仅在capped为true时有效5000
validator对象用于文档验证的表达式{ $jsonSchema: { … }}
validationLevel字符串指定文档验证的严格程度。
"off":不进行验证。
"strict":插入和更新操作都必须通过验证(默认)。
"moderate":仅现有文档更新时必须通过验证,插入新文档时不需要。
“strict”
validationAction字符串指定文档验证失败时的操作。
"error"<阻止插入或更新>(默认)。
"warn"<允许插入或更新>,但会发出警告。
“error”
strageEngine对象为集合指定存储引擎配置。{wiredTiger:{…}}
colllation对象指定集合的默认排序规则。{locale:“en”, strength<2>}

4.2 创建 / 插入 (Create)#

命令说明示例
insertOne插入单个文档db.users.insertOne({name: "张三"})
insertMany插入多个文档db.users.insertMany([{name: "李四"}, {name: "王五"}])

4.3 查询 / 查找 (Read)#

命令说明示例
find()查询所有文档db.users.find()
find(<filter>)按条件查询db.users.find({name: "老杨"})
find(<filter>, <projection>)按条件查询并指定返回字段db.users.find({name: "老杨"}, {name: 1, email: 1})
findOne(<filter>)查询满足条件的第一个文档db.users.findOne({level: 1})
countDocuments()返回满足条件的记录数量db.users.countDocuments({age: {$gte: 18}})

查询修饰符#

命令说明
sort()按指定字段升序(1)或降序(-1)排序
limit()限定返回文档数量
skip()跳过指定数量的文档
// 示例:按年龄降序排列,跳过前10条,返回5条
db.users.find().sort({age: -1}).skip(10).limit(5)

4.3 更新 (Update)#

命令说明示例
updateOne更新满足条件的第一个文档db.users.updateOne({name: "张三"}, {$set: {age: 20}})
updateMany更新满足条件的所有文档db.users.updateMany({status: "pending"}, {$set: {status: "active"}})
replaceOne替换满足条件的第一个文档db.users.replaceOne({name: "张三"}, {name: "张三", age: 21})
save传入文档替换已有文档或插入新文档db.users.save({_id: ObjectId("..."), name: "张三"})

更新操作符#

操作符说明示例
$set只更新指定字段,不影响其他字段{$set: {age: 25}}
$inc递增(或递减)指定字段值{$inc: {age: 1}}
$rename更新字段名称{$rename: {oldName: "newName"}}
$unset删除一个字段{$unset: {age: ""}}
$push将值加入数组(不判断重复){$push: {tags: "mongodb"}}
$pull将值从数组中移除{$pull: {tags: "mongodb"}}
$addToSet将值加入数组(若重复则不加入){$addToSet: {tags: "mongodb"}}

4.4 删除 (Delete)#

命令说明示例
deleteOne删除满足条件的第一个文档db.users.deleteOne({name: "张三"})
deleteMany删除满足条件的所有文档db.users.deleteMany({status: "inactive"})

五、聚合操作 (Aggregation)#

聚合主要用于处理数据并返回计算结果(如求和、平均值等)。

操作符说明
$sum计算总和
$avg计算平均值
$min获取最小值
$max获取最大值
$push将值加入数组(不判断重复)
$first获取第一个文档数据
$last获取最后一个文档数据
// 示例:按部门分组统计平均工资
db.employees.aggregate([
{ $group: { _id: "$department", avgSalary: { $avg: "$salary" } } }
])

六、过滤条件 / 查询操作符#

6.1 比较操作符#

操作符全称说明示例
$eqequal等于{age: {$eq: 18}}
$nenot equal不等于{age: {$ne: 18}}
$gtgreater than大于{age: {$gt: 18}}
$gtegreater than or equal to大于等于{age: {$gte: 18}}
$ltless than小于{age: {$lt: 18}}
$lteless than or equal to小于等于{age: {$lte: 18}}
$inin值在指定列表中{status: {$in: ["active", "pending"]}}
$ninnot in值不在指定列表中{status: {$nin: ["deleted", "banned"]}}

6.2 逻辑操作符#

操作符说明示例
$and并且(多个条件均为真){$and: [{age: {$gte: 18}}, {status: "active"}]}
$or或者(至少一个条件为真){$or: [{status: "active"}, {status: "pending"}]}
$not取反{age: {$not: {$lt: 18}}}

6.3 其他操作符#

操作符说明示例
$exists检查字段是否存在{email: {$exists: true}}
$expr在不同字段之间做比较{$expr: {$gt: ["$spent", "$budget"]}}

七、常用查询示例#

// 查询年龄大于18且状态为active的用户
db.users.find({
$and: [
{age: {$gt: 18}},
{status: "active"}
]
})
// 查询状态为 active 或 pending 的用户
db.users.find({
status: {$in: ["active", "pending"]}
})
// 查询所有有 email 字段的用户
db.users.find({
email: {$exists: true}
})
// 查询花费超过预算的订单
db.orders.find({
$expr: {$gt: ["$spent", "$budget"]}
})

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Mongo常用命令
https://kulve.tech/posts/mongodb常用命令/
作者
Kulve
发布于
2026-07-19
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kulve
Hello, I'm Kulve.
公告
欢迎来到我的博客!这是一则示例公告。正在建设与测试此网站。
分类
标签
最新动态
站点统计
文章
17
分类
10
标签
23
总字数
33,120
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.15.2
文章许可
CC BY-NC-SA 4.0