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% 高可用。​
应用需要大量的地理位置查询、文本查询。

相关文章
|
8月前
|
前端开发
Promise.all()方法和Promise.race()方法有什么区别?
Promise.all()方法和Promise.race()方法有什么区别?
605 115
|
8月前
|
前端开发
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
509 108
|
8月前
|
自然语言处理 前端开发 JavaScript
js异步
js异步
756 108
|
存储 缓存 NoSQL
MongoDB 是什么?有哪些应用场景?
MongoDB 是一个由 MongoDB Inc. 开发的基于分布式文件存储的面向文档的数据库,自 2009 年推出以来,以其高性能、易部署、模式自由、强大的查询语言和出色的可扩展性受到广泛欢迎。它适用于互联网应用、日志分析、缓存、地理信息系统等多种场景。MongoDB 支持多种编程语言,并提供了丰富的社区支持,便于开发者快速上手。结合板栗看板等工具,MongoDB 可进一步提升数据存储、分析和同步的效率,支持个性化功能实现,助力团队协作和项目管理。
4291 1
|
4月前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
4315 57
|
8月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
624 0
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
577 15
|
8月前
|
开发工具 git
解决 VSCode 安装通义灵码后左侧菜单栏不显示按钮的问题
在 VSCode 中安装通义灵码插件后,若左侧活动栏未显示图标,可通过右键选中代码触发插件面板,并将其图标拖至左侧栏固定,便于后续快速使用。
3905 116
|
人工智能 监控 机器人
阿里云开发者社区博文规范及指引
阿里云开发者社区博文规范及指引
4822 31
阿里云开发者社区博文规范及指引
下一篇
开通oss服务