MongoDB简介
MongoDB是一种开源的、面向文档的、分布式的NoSQL数据库系统,由C++语言编写而成。它的设计目标是为了适应现代Web应用和大数据处理场景的需求,提供高可用性、横向扩展能力和灵活的数据模型。
主要特点:
-
文档模型:
- MongoDB采用JSON-like(类似于JavaScript对象)的数据结构,称为文档,每个文档可以有多个字段和嵌套结构,使得数据模型更加灵活多样。
- 文档存储在集合(Collections)中,集合无需预先定义严格的模式,允许每个文档拥有不同的结构。
-
分布式存储:
- MongoDB支持分布式文件存储,能够将数据分散存储在多台机器上,从而实现数据的水平扩展和负载均衡。
-
高可用性与容错性:
- 通过复制集(Replica Sets)提供自动故障转移和数据冗余,确保服务高可用性。
- 支持分片(Sharding)技术来分散大量数据集以支持更大规模的并发读写。
-
查询和索引:
- 提供强大的查询语言,支持丰富的查询表达式和聚合管道(Aggregation Pipeline),可以对数据进行复杂操作和分析。
- 可以为文档中的任意字段创建索引,包括文本索引、地理位置索引等多种索引类型,以优化查询性能。
-
事务支持:
- 自MongoDB 4.0版本起,提供了对多文档事务的支持,满足了需要严格一致性的应用场景。
-
性能表现:
- 由于其内存映射的存储引擎设计,MongoDB在读写速度上有良好的表现,尤其适合读密集型和实时数据处理场景。
-
编程友好:
- MongoDB支持多种编程语言的API接口,方便开发者在各种开发环境中快速集成和使用。
总之,MongoDB凭借其灵活性、可扩展性和高性能特性,在现代Web应用开发、物联网、移动应用、实时分析等领域得到了广泛应用。
MongDB部署
单节点Docker-Compose部署MongDB
version: '3.9' # 使用 Docker Compose 的版本services:mongodb:image: mongo:5.0.10-focal # 使用官方MongoDB镜像restart: always # 容器退出时自动重启container_name: mongodb # 自定义容器名称hostname: mongodb # 可选,设置容器主机名environment:MONGO_INITDB_ROOT_USERNAME: root # 初始化管理员用户名(可选)MONGO_INITDB_ROOT_PASSWORD: 123456 # 初始化管理员密码(可选)ports:- "27017:27017" # 映射容器内部端口到宿主机端口volumes:- ./data/db:/data/db # 挂载数据卷以持久化数据- ./configdb:/data/configdb # 如果需要配置副本集或分片集群,则挂载配置数据库目录
在docker-compose.yml文件目录下,后台启动
docker-compose up -d
启动后,使用MongDB Compose可视化工具连接