2023-10-10 15:57:11
MongoDB 是一个基于分布式文件存储的开源非关系型数据库(NoSQL),采用文档型数据模型,销猜支持动态模式设计,具备高性能、高可用性和水平扩展能力,适用于多种业务场景。
一、MongoDB 与 MySQL 的对应关系使用 use 数据库名 切换库时,若库不存在则自动创建(但需插入数据后才会实际存储)。
直接插入数据时,若集合不存在则自动创建。
嵌入式数据模型:减少 I/O 操作,提升查询效率。
索引支持:可对嵌入式文档和数组字段建立索引,加速查询。
支持 CRUD 操作、数据聚合、文本搜索和地理空间索引。
查询语法灵活,支持复杂条件筛选和投影。
通过副本集(Replica Set)实现数据冗余和自动故障转移。
主节点处理写操作,从节点同步数据并提供读服务。
分片(Sharding)将数据分散存储在多台服务器上,支持海量数据和高并发。
自动平衡数据分布,避免单点性能瓶颈。
WiredTiger:默认引擎,支持事务和压缩,适合大多数场景。
MMAPv1:旧版引擎,适用于大文档存储。
InMemory:内存引擎,用于临时数据和高性能缓存。
存储用户信息、装备和积分,内嵌文档设计简化查询和更新。
示例:用户文档中直接嵌套装备数组,避免多表关联。
存储订单信息,使用内嵌数组记录订单状态变更历史。
示例:一次查询即可获取订单完整生命周期数据。
存储用户信息和朋友圈动态,支持地理位置索引实现“附近的人”功能。
示例:通过 $near 查询附近用户或地点。
存储设亏孝型备信息和日志数据,支持多维度分析(如时间序列、设备状态)。
示例:分析设备上报的慎首温度、湿度等传感器数据。
存储用户信息、礼物记录和评论数据,支持高并发写入和实时查询。
示例:实时更新礼物排行榜或评论流。
存储商品信息,支持动态属性(如上衣的肩宽、裤子的裤长)。
示例:商品文档中嵌套不同字段,避免表结构频繁变更。
存储不同用户的问题和答案,支持灵活的字段设计。
示例:每个问卷的字段可动态调整,无需预定义表结构。
MongoDB 以其灵活的数据模型、高性能查询和水平扩展能力,成为现代应用开发的热门选择。尤其适合数据结构多变、需要快速迭代或处理海量数据的场景,如游戏、物联网和社交平台。其副本集和分片机制进一步保障了数据可靠性和系统吞吐量,满足企业级应用需求。