当前位置: 技术文章>> MongoDB的命令行工具有哪些常用命令?
文章标题:MongoDB的命令行工具有哪些常用命令?
MongoDB的命令行工具是数据库管理和操作的重要组成部分,它们提供了丰富的命令来执行各种数据库操作。在MongoDB中,常用的命令行工具包括mongo和mongosh(MongoDB Shell的最新版本),以及用于备份和恢复等高级操作的mongodb-database-tools。下面将详细介绍这些工具及其常用命令。
### 一、MongoDB Shell(mongo/mongosh)
MongoDB Shell是MongoDB的交互式命令行界面,允许用户连接到MongoDB实例并执行查询、插入、更新和删除等操作。mongosh是MongoDB Shell的最新版本,相较于旧版本,它提供了更好的语法高亮、自动补全和错误提示功能。
#### 1. 连接MongoDB
- 使用默认配置连接到本地MongoDB实例:
```bash
mongo
```
- 使用指定主机和端口连接MongoDB实例:
```bash
mongo mongodb://hostname:port
```
#### 2. 数据库操作
- **查看所有数据库**:
```bash
show dbs
```
注意:新创建的数据库在没有任何集合或数据时,不会显示在`show dbs`的输出中。
- **选择或创建数据库**:
```bash
use databaseName
```
如果数据库不存在,MongoDB会在插入数据或执行某些操作时自动创建该数据库。
- **删除当前数据库**:
```bash
use databaseName
db.dropDatabase()
```
#### 3. 集合操作
- **创建集合**:
```bash
db.createCollection("collectionName", {size: 5120, capped: true, max: 5000})
```
其中,`size`指定集合的最大字节大小,`capped`表示是否为固定大小的集合,`max`指定集合中最大文档数。
- **查看当前数据库中的所有集合**:
```bash
show collections
```
- **删除集合**:
```bash
db.collectionName.drop()
```
#### 4. 文档操作
- **插入文档**:
- 插入单条文档:
```bash
db.collectionName.insertOne({key: "value"})
```
- 插入多条文档:
```bash
db.collectionName.insertMany([{key1: "value1"}, {key2: "value2"}])
```
- **查询文档**:
- 查询所有文档:
```bash
db.collectionName.find()
```
- 条件查询:
```bash
db.collectionName.find({key: "value"})
```
- 格式化输出查询结果:
```bash
db.collectionName.find().pretty()
```
- **更新文档**:
- 更新单个文档:
```bash
db.collectionName.updateOne(
{query},
{$set: {key: "newValue"}}
)
```
- 更新多个文档:
```bash
db.collectionName.updateMany(
{query},
{$set: {key: "newValue"}}
)
```
- **删除文档**:
- 删除单个文档:
```bash
db.collectionName.deleteOne({query})
```
- 删除多个文档:
```bash
db.collectionName.deleteMany({query})
```
### 二、mongodb-database-tools
mongodb-database-tools是MongoDB官方提供的一组命令行工具,用于执行备份、恢复、导入、导出、查询和转换数据等高级操作。
#### 1. 数据备份(mongodump)
`mongodump`用于备份MongoDB数据库。通过指定不同的选项,可以备份整个数据库、指定数据库或集合,甚至可以根据查询条件备份部分数据。
- 备份整个数据库实例:
```bash
mongodump --host hostname --port port
```
- 备份指定数据库:
```bash
mongodump --host hostname --port port --db databaseName
```
- 备份指定集合,并指定输出目录:
```bash
mongodump --host hostname --port port --db databaseName --collection collectionName --out backupDirectory
```
#### 2. 数据恢复(mongorestore)
`mongorestore`用于从备份文件中恢复MongoDB数据库。它支持从`mongodump`生成的备份文件中恢复数据。
- 恢复整个数据库实例的备份:
```bash
mongorestore --host hostname --port port /path/to/backupDirectory
```
- 恢复指定数据库的备份:
```bash
mongorestore --host hostname --port port --db databaseName /path/to/databaseNameBackup
```
- 恢复指定集合的备份:
```bash
mongorestore --host hostname --port port --db databaseName --collection collectionName /path/to/collectionNameBackup
```
### 三、其他常用命令
- **查看当前数据库名称**:
```bash
db.getName()
```
- **查看数据库状态**:
```bash
db.stats()
```
- **查看MongoDB Shell版本**:
```bash
db.version()
```
- **数据库认证**:
```bash
db.auth("username", "password")
```
### 总结
MongoDB的命令行工具提供了丰富的命令来执行各种数据库操作,从基本的数据库和集合管理到复杂的文档查询和更新,再到高级的数据备份和恢复。通过熟练使用这些工具,可以高效地管理和维护MongoDB数据库。在码小课网站上,你可以找到更多关于MongoDB的教程和实战案例,帮助你进一步提升MongoDB的使用技能。