"mongodb笔记"
MongoDB 是一个流行的开源、非关系型(NoSQL)数据库系统,主要用于处理大量数据。这份笔记涵盖了MongoDB的基础知识和实际操作,包括安装配置、基本操作、用户管理、复制集、分片以及与Java的集成。
1. **安装配置**
- 在Windows环境下,你可以将MongoDB安装在如"D:/mongodb"的目录下,并创建数据存储目录"D:/mongodbdata"。
- 配置MongoDB的环境变量,将其bin目录添加到系统PATH中。
- 打开命令行,运行"mongod.exe"启动服务,并指定数据库路径用"--dbpath"参数。
- 为了确保MongoDB正常运行,需要创建一个批处理文件(如mongodb.bat),并设置正确的路径和选项。
2. **启动与停止**
- 可以通过命令行直接运行"mongo.exe"进入MongoDB的shell。
- 使用"mongod --help"获取帮助信息,以了解不同命令的用法。
- 停止MongoDB服务通常通过关闭对应的批处理进程或者使用特定的命令实现。
3. **数据库操作**
- 使用"usedatabase"切换或创建数据库。
- "showdbs"展示所有已创建的数据库。
- 插入文档:`db.[collectionName].insert({key1: value1, key2: value2, ...})`
- 查看集合:`showcollections`
- 查询文档:`db.[collectionName].find()`,`db.[collectionName].findOne()`
- 更新文档:`db.[collectionName].update({query}, {update})`
- 单个字段更新示例:`var p = db.persons.findOne(); db.persons.update(p, {name: "uspcat"})`
- 多字段同时更新:`db.persons.update({name: "1"}, {$set: {name: "2", age: 1}})`
- 删除文档:`db.[collectionName].remove({})`
- 删除集合:`db.[collectionName].drop()`
- 删除整个数据库:`db.dropDatabase()`
4. **高级特性**
- **用户管理**:MongoDB支持用户账户管理,可以创建、删除和管理用户权限,保障数据库安全。
- **主从复制**:复制数据以实现数据冗余和故障恢复,提高可用性。
- **分片(Sharding)**:在大型分布式环境中,通过分片技术将数据分散在多台服务器上,实现水平扩展,处理海量数据。
- **副本集(Replica Sets)**:提供高可用性和容错性,当主节点出现问题时,可以从副本节点中自动切换。
5. **MongoDB与Java的结合**
- MongoDB提供了Java驱动程序,使得Java开发者可以方便地在应用程序中操作MongoDB数据库,进行增删改查等操作。
这份笔记是一个很好的学习资源,不仅覆盖了MongoDB的基本操作,还涉及到一些高级特性和实践案例,对于初学者和有一定经验的开发者来说都是有价值的参考资料。