MongoDB 简介

简介: MongoDB 是一款开源、高性能、无模式的文档型 NoSQL 数据库,采用 BSON 文档存储数据,支持灵活的数据结构,适用于社交、游戏、物流、物联网等多种场景。具备高性能、高可用、高扩展及丰富查询能力,适合需快速迭代、大规模数据存储与高并发读写的应用。

MongoDB 是一个开源、高性能、无模式的文档型数据库,是 NoSQL 数据库产品中的一种,被设计用于简化开发和方便扩展。它以 BSON(Binary-JSON)文档的格式存储数据,支持的数据结构非常松散,类似于 JSON,既可以存储复杂数据类型,又具有很高的灵活性。​
体系结构​

屏幕截图 2025-08-30 195710.png

image.png


数据模型​
MongoDB 的最小存储单位是文档对象,文档对象对应于关系型数据库的行。BSON 是一种类 JSON 的二进制形式存储格式,支持内嵌的文档对象和数组对象,还包含一些 JSON 没有的数据类型,如 Date 和 BinData 类型。BSON 具有轻量性、可遍历性、高效性的特点,但空间利用率不太理想。​
特点​
高性能:支持嵌入式数据模型,减少 I/O 活动,索引支持更快的查询,还支持多种存储引擎,如 wiredtiger、in - memory 等,以满足各种场景需求。​
高可用性:通过副本集提供自动故障转移和数据冗余,确保数据的高可用性。​
高扩展性:分片将数据分布在一组集群的机器上,从 3.4 开始,支持基于片键创建数据区域,实现水平可扩展性。​
丰富的查询支持:支持丰富的查询语言,包括 CRUD 操作、数据聚合、文本搜索和地理空间查询等。​
应用场景​
社交场景:存储用户信息、朋友圈信息等,可通过地理位置索引实现附近的人、地点等功能。​
游戏场景:存储游戏用户信息、装备、积分等,以内嵌文档的形式存储,方便查询和更新。​
物流场景:存储订单信息,订单状态的变更以嵌入数组的形式存储,一次查询就能读取所有变更。​
物联网场景:存储智能设备信息和设备汇报的日志信息,并进行多维度分析,可通过分片集群实例实现性能和存储空间的无限扩展。​
视频直播:存储用户信息、点赞互动信息等。​
MongoDB 的适用情况​
应用不需要事务及复杂 join 支持。​
新应用,需求会变,数据模型无法确定,想快速迭代开发。​
应用需要 2000 - 3000 以上的读写 QPS。​
应用需要 TB 甚至 PB 级别数据存储。​
应用发展迅速,需要能快速水平扩展。​
应用要求存储的数据不丢失。​
应用需要 99.999% 高可用。​
应用需要大量的地理位置查询、文本查询。

相关文章
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
651 15
|
存储 缓存 NoSQL
MongoDB 是什么?有哪些应用场景?
MongoDB 是一个由 MongoDB Inc. 开发的基于分布式文件存储的面向文档的数据库,自 2009 年推出以来,以其高性能、易部署、模式自由、强大的查询语言和出色的可扩展性受到广泛欢迎。它适用于互联网应用、日志分析、缓存、地理信息系统等多种场景。MongoDB 支持多种编程语言,并提供了丰富的社区支持,便于开发者快速上手。结合板栗看板等工具,MongoDB 可进一步提升数据存储、分析和同步的效率,支持个性化功能实现,助力团队协作和项目管理。
4415 1
|
缓存 NoSQL JavaScript
8 种方案解决重复提交问题!你选择哪一种呀?
1.什么是幂等 2.产生原因 3.解决方案 ①配置注解 ②实例化锁 ③AOP 切面 ④注解使用案例
Element UI 表格【列宽自适应】
Element UI 表格【列宽自适应】
801 0
|
存储 NoSQL MongoDB
MongoDB技术架构详解
MongoDB技术架构详解
|
11月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
762 0
|
缓存 边缘计算 负载均衡
如何理解CDN?说说实现原理?
CDN(内容分发网络)是提升网络访问速度的关键技术,通过在全球或全国范围内设立边缘服务器,将内容缓存到靠近用户的地方。当用户访问网站时,DNS返回CNAME,引导用户连接到最近的CDN节点,而非直接到源站。CDN的负载均衡系统依据用户位置、运营商、节点负载等因素选择最佳边缘节点提供服务,而缓存系统则存储常用资源以提高命中率,减少回源请求。高命中率使得CDN能显著提高网站性能,降低网络拥塞。
5121 0
|
存储 NoSQL 大数据
大数据中数据存储 (Data Storage)
【10月更文挑战第17天】
2528 2
|
11月前
|
前端开发
Promise.all()方法和Promise.race()方法有什么区别?
Promise.all()方法和Promise.race()方法有什么区别?
704 115
|
11月前
|
前端开发 JavaScript
HTML/CSS/JavaScript基础学习day01
阿铭学习HTML基础,包括VSCode快捷生成代码、常用标签如head、title、body、img、a、p等的使用,以及CSS选择器的优先级和基本样式设置,适合前端入门学习。
302 12

热门文章

最新文章