MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性和高性能而受到广泛的欢迎。它使用JSON-like文档进行数据存储,这使得数据模型更加直观且易于处理。以下是对标题和描述中涉及的MongoDB常用操作命令的详细说明:
1. **数据库操作**
- `db`: 这个命令用于查看当前正在使用的数据库。在MongoDB shell中,当你执行任何操作时,`db`对象代表当前的数据库。
- `showdbs`: 显示所有已经存在的数据库。如果数据库没有任何集合,它可能不会显示。
- `use db_name`: 该命令用于创建数据库(如果不存在)或切换到已存在的数据库。`db_name`是你要使用的数据库名称。
- `db.getName()`: 获取当前数据库的名称。
- `db.stats()`: 提供当前数据库的状态信息,包括大小、存储引擎信息等。
- `db.getMongo()`: 返回对MongoDB服务器的连接对象。
- `db.dropDatabase()`: 删除当前正在使用的数据库,所有相关的数据都将丢失。
2. **集合操作**
- **创建集合**
- **隐式创建**: 当你尝试向一个不存在的集合中插入文档时,MongoDB会自动创建这个集合。例如:`db.users.insert({"username":"mengdee","age":26})`。
- **显式创建**: 使用`db.createCollection()`命令创建集合,可以添加可选配置,比如创建固定集合(capped collection)。
- 固定集合的创建示例:`db.createCollection("address",{capped:true,size:10000,max:1000})`。固定集合限制了存储空间和文档数量,当达到上限时,新的插入会覆盖最旧的文档。
- **删除集合**: 使用`db.collectionName.drop()`命令来删除集合,例如:`db.address.drop()`。
- **查看集合**: 可以使用`showtables`或`showcollections`查看当前数据库下的所有集合。
3. **添加数据**
- **插入数据(insert)**: MongoDB提供`insert`方法向集合中插入文档。例如:`db.collectionName.insert(document)`。
- **其他数据操作**
- 更新数据:`db.collection.updateOne(filter, update)` 或 `db.collection.updateMany(filter, update)`。
- 查询数据:使用`find`方法,例如:`db.collection.find(query, projection)`。
- 删除数据:`db.collection.deleteOne(filter)` 或 `db.collection.deleteMany(filter)`。
4. **查询和过滤**
- MongoDB提供了丰富的查询语言,可以使用条件表达式、比较操作符、逻辑运算符等进行复杂查询。
- 例如,查找年龄大于25岁的用户:`db.users.find({age: {$gt: 25}})`。
5. **聚合操作**
- MongoDB的聚合框架允许处理数据记录并返回计算结果,类似于SQL的GROUP BY操作。
- 常用的聚合操作有`$match`、`$group`、`$sort`、`$project`等。
6. **索引管理**
- 索引可以显著提高查询性能。使用`db.collection.createIndex(indexSpec)`创建索引,如:`db.users.createIndex({username: 1})`创建升序索引。
- `db.collection.getIndexes()`列出集合上的所有索引。
7. **备份与恢复**
- MongoDB提供了工具进行数据备份和恢复,如`mongodump`和`mongorestore`。
以上就是MongoDB的一些基本操作,它们涵盖了数据库的创建、集合的管理、数据的增删改查以及索引的使用。在实际开发中,根据具体需求,还可以进一步学习复制集、分片、安全设置等高级特性。