MongoDB数据库教程
MongoDB是一种流行的NoSQL数据库系统,以其灵活性、可扩展性和高性能而著称,特别适合处理大量半结构化或非结构化数据。本篇笔记旨在为初学者提供一些基本的MongoDB操作指南。
1. **入门与环境确认**
进入MongoDB数据库的命令行提示符后,如果看到类似提示表示已成功连接。例如,`>` 或 `mongo` 后的提示即表示进入。
2. **基础操作**
- **创建与切换数据库**:使用`use`命令创建数据库,如`use student`。此时,虽然没有显示创建,但数据库已经在后台创建。确认数据库列表可以通过`show dbs`命令。
- **插入数据**:使用`db.pr.insert()`方法插入文档,如`db.pr.insert(_id:1, name:"zxg")`。插入文档时需指定唯一的 `_id`,如果没有指定,MongoDB会自动生成。
3. **查询数据**
- 查询所有数据:`db.pr.find()`。
- 获取第一条数据:`db.stu.findOne()`。
- 使用`findOne`带有筛选条件:`db.stu.findOne({name: "zxg"})`。
4. **文档操作**
- **修改文档**:`db.stu.update()`方法用于更新文档,第一个参数是查询条件(如`{name: "zxg"}`),第二个参数是更新操作(如`$set: {name: "xialan"}`)。内嵌文档通过`.`连接键路径,如`{age: 22}`。
- **删除数据**:`db.stu.remove()`删除符合条件的文档,如`db.stu.remove({name: "郭珍妮"})`。注意,`drop()`方法用于删除整个集合或数据库。
5. **高级功能**
- **JavaScript支持**:MongoDB允许在数据库级别执行JavaScript代码,增强了查询和数据处理的灵活性。
- **文档结构**:支持嵌套文档,如`db.stu.insert({name: "xialan", children: {name: "zhanchi"}})`。
- **批量操作**:`db.stu.insert()`一次插入多个文档,`remove({})`用于批量删除所有文档。
- **避免重复插入**:`Insert`操作会报错,因为不允许插入相同ID。`Save`在遇到相同ID时会执行更新,而不是插入。`InsertOrUpdate`通过第三个参数`true`实现既插入又更新的策略。
6. **修改器操作符**
- `$set`:用于替换或添加字段值。
- `$inc`:对数值字段进行递增或递减操作。
- `$unset`:移除指定的字段。
- `$push`:追加元素到数组中。
- `$addToSet`:仅当数组中不存在指定元素时追加,避免重复。
总结起来,这篇笔记涵盖了MongoDB的基本操作,包括数据库管理、数据插入、查询、文档修改、删除和高级特性,如嵌套文档、批量操作以及使用修改器操作符进行灵活的数据更新。这些知识点有助于初学者快速掌握MongoDB的使用,并能进行基本的数据存储和管理。