MongoDB 常用指令(详细)

# MongoDB 常用指令

## 基础命令
### 启动与连接
```bash
# 启动 MongoDB 服务
mongod

# 连接 MongoDB 客户端
mongo
```

### 数据库操作
```bash
# 查看当前使用的数据库
db

# 列出所有数据库
show dbs

# 切换或创建数据库
use <database_name>

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

## 集合操作
```bash
# 查看当前数据库的所有集合
show collections

# 创建集合
db.createCollection("<collection_name>")

# 删除集合
db.<collection_name>.drop()
```

## 文档操作
### 插入
```bash
# 插入单个文档
db.<collection_name>.insertOne({<field1>: <value1>, <field2>: <value2>})

# 插入多个文档
db.<collection_name>.insertMany([
{<field1>: <value1>, <field2>: <value2>},
{<field1>: <value1>, <field2>: <value2>}
])
```

### 查询
```bash
# 查询所有文档
db.<collection_name>.find()

# 格式化输出查询结果
db.<collection_name>.find().pretty()

# 查询单个文档
db.<collection_name>.findOne({<field>: <value>})

# 条件查询
db.<collection_name>.find({<field>: <value>})

# 使用逻辑运算符查询
db.<collection_name>.find({
$or: [
{<field1>: <value1>},
{<field2>: <value2>}
]
})

# 查询嵌套字段
db.<collection_name>.find({"<embedded_field>.<sub_field>": <value>})
```

### 更新
```bash
# 更新单个文档
db.<collection_name>.updateOne(
{<query_field>: <query_value>},
{$set: {<field_to_update>: <new_value>}}
)

# 更新多个文档
db.<collection_name>.updateMany(
{<query_field>: <query_value>},
{$set: {<field_to_update>: <new_value>}}
)

# 替换文档
db.<collection_name>.replaceOne(
{<query_field>: <query_value>},
{<new_document>}
)
```

### 删除
```bash
# 删除单个文档
db.<collection_name>.deleteOne({<field>: <value>})

# 删除多个文档
db.<collection_name>.deleteMany({<field>: <value>})

# 删除所有文档
db.<collection_name>.deleteMany({})
```

## 索引操作
```bash
# 创建索引
db.<collection_name>.createIndex({<field>: 1})

# 查看所有索引
db.<collection_name>.getIndexes()

# 删除索引
db.<collection_name>.dropIndex("<index_name>")
```

## 聚合操作
```bash
# 使用聚合管道
db.<collection_name>.aggregate([
{$match: {<field>: <value>}},
{$group: {_id: "$<group_field>", total: {$sum: "$<field_to_sum>"}}}
])
```

## 用户与权限
```bash
# 创建用户
db.createUser({
user: "<username>",
pwd: "<password>",
roles: [
{role: "<role>", db: "<database_name>"}
]
})

# 查看用户
db.getUsers()

# 删除用户
db.dropUser("<username>")
```

## 备份与恢复
```bash
# 导出数据库
mongodump --db <database_name> --out <backup_path>

# 导入数据库
mongorestore --db <database_name> <backup_path>/<database_name>
```

## 性能与监控
```bash
# 查看当前操作
db.currentOp()

# 查看数据库状态
db.stats()

# 查看集合状态
db.<collection_name>.stats()

# 分析查询性能
db.<collection_name>.find(<query>).explain("executionStats")
```

## 其他
```bash
# 清空集合
db.<collection_name>.deleteMany({})

# 计数文档数量
db.<collection_name>.countDocuments({})

# 获取数据库信息
db.serverStatus()
posted @   小破的博客  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
历史上的今天:
2021-01-17 构造函数和原型对象
2021-01-17 设置一个两边固定中间自适应的css
2021-01-17 让绝对定位的div居中
点击右上角即可分享
微信分享提示