MongoDB复习:非关系型数据库核心知识点与操作指南

需积分: 0 2 下载量 62 浏览量 更新于2024-08-04 收藏 20KB DOCX 举报
非关系型数据库复习大纲1涵盖了MongoDB的关键知识点。首先,MongoDB是一种文档型数据库,其核心特点是数据模型灵活,每个数据库的基本单元是文档,而非固定的表结构。这意味着集合(类似关系数据库中的表)内的文档可以有不同的模式,这使得它适应了非结构化数据的处理。 在MongoDB中,当数据量大且查询复杂时,如集合大、文档大或需要选择性查询,创建索引是提高性能的关键。索引在MongoDB中是用于加速查询的,但并非所有查询都会使用索引,例如不包含索引字段的查询或复合索引中未完全匹配的部分不会使用索引。用户自定义角色时,确实需要在admin数据库下进行操作,以确保权限管理。 副本集是MongoDB的一种高可用性解决方案,通过主从复制和自动故障转移来保障数据的连续性,备份节点会自动从主节点同步数据。读写分离是通过副本集实现的,通过配置多个节点分别负责读取和写入操作,提升系统的并发性能。 MongoDB的分析器命令`explain`用于理解查询执行计划,帮助优化查询性能。Primary是副本集中的主节点,负责写入操作,而Backup是用于备份,非副本集成员。时间索引并不是MongoDB的标准索引类型,通常使用`$natural`或`$dateFromString`来处理时间相关的查询。 在数据修改方面,MongoDB使用`$set`修改器来更新文档的指定字段。NoSQL数据库类型包括键值数据库(如Redis)、列存储数据库(如Cassandra)、文档型数据库(如MongoDB)和图形数据库(如Neo4j)。MongoDB的集群部署模式有三种:副本集、分片和主从复制,其中分片允许水平扩展,提高存储容量和查询性能。 MongoDB的`find`方法返回游标,通过调用`limit`函数可以限制返回的文档数量。ConfigRouter在分片场景中扮演着配置路由的角色,而不是必须的节点。MongoDB的索引通常采用B树结构,提供高效的查找。登录MongoDB客户端可以通过`Mongo`命令行工具。 MongoDB的角色权限管理包括`read`和`readWrite`,前者只允许读取数据,后者则包括读写权限。`pretty()`函数用于格式化输出结果,使其更易阅读。副本集中,备份节点会自动同步主节点的数据,实现数据冗余和保护。 在MongoDB中,全文检索功能需要建立文本索引来支持。`ObjectID`是MongoDB的唯一标识符,由时间戳、客户端ID、进程ID和递增计数器组成。插入文档可以使用`insert()`或`save()`方法。在分片和副本集场景下,根据具体需求,三分片和三副本的配置可以优化读性能,而单一读操作(读操作集中在一台机器)在某些特定情况下可能性能最佳。 最后,需要注意的一些误区包括:MongoDB的集合确实支持动态模式;在MongoDB上建立索引时,虽然可以建立在复合键上,但并不会同时支持查询顺序不同的键;MongoDB提供了丰富的聚合函数和管道操作,但并非仅限于普通聚合;MongoDB并不支持存储过程,这是与关系型数据库的一个主要区别;副本集确实有助于负载均衡,但这里的表述“有效实现”可能是不准确的,因为真正的负载均衡通常涉及更复杂的网络架构设计。