MongoDB学习【一】MongoDB简介和部署

MongoDB简介

MongoDB是一种开源的、面向文档的、分布式的NoSQL数据库系统,由C++语言编写而成。它的设计目标是为了适应现代Web应用和大数据处理场景的需求,提供高可用性、横向扩展能力和灵活的数据模型。

主要特点:

  1. 文档模型

    • MongoDB采用JSON-like(类似于JavaScript对象)的数据结构,称为文档,每个文档可以有多个字段和嵌套结构,使得数据模型更加灵活多样。
    • 文档存储在集合(Collections)中,集合无需预先定义严格的模式,允许每个文档拥有不同的结构。
  2. 分布式存储

    • MongoDB支持分布式文件存储,能够将数据分散存储在多台机器上,从而实现数据的水平扩展和负载均衡。
  3. 高可用性与容错性

    • 通过复制集(Replica Sets)提供自动故障转移和数据冗余,确保服务高可用性。
    • 支持分片(Sharding)技术来分散大量数据集以支持更大规模的并发读写。
  4. 查询和索引

    • 提供强大的查询语言,支持丰富的查询表达式和聚合管道(Aggregation Pipeline),可以对数据进行复杂操作和分析。
    • 可以为文档中的任意字段创建索引,包括文本索引、地理位置索引等多种索引类型,以优化查询性能。
  5. 事务支持

    • 自MongoDB 4.0版本起,提供了对多文档事务的支持,满足了需要严格一致性的应用场景。
  6. 性能表现

    • 由于其内存映射的存储引擎设计,MongoDB在读写速度上有良好的表现,尤其适合读密集型和实时数据处理场景。
  7. 编程友好

    • MongoDB支持多种编程语言的API接口,方便开发者在各种开发环境中快速集成和使用。

总之,MongoDB凭借其灵活性、可扩展性和高性能特性,在现代Web应用开发、物联网、移动应用、实时分析等领域得到了广泛应用。

MongDB部署

单节点Docker-Compose部署MongDB

yaml 复制代码
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文件目录下,后台启动

bash 复制代码
docker-compose up -d

启动后,使用MongDB Compose可视化工具连接

相关推荐
廿一夏7 小时前
MySql存储引擎与索引
数据库·sql·mysql
辰海Coding7 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林7 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家8 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
Upsy-Daisy8 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
lzhdim9 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室9 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)9 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
LuminousCPP10 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师10 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#