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可视化工具连接

相关推荐
success_a22 分钟前
大故障:阿里云核心域名爆炸了
数据库·阿里云·云计算
阿阳微客2 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
@小红花3 小时前
MySQL数据库从0到1
数据库·mysql·oracle
[听得时光枕水眠]3 小时前
MySQL基础(三)DQL(Data Query Language,数据查询语言)
数据库·mysql·oracle
我科绝伦(Huanhuan Zhou)3 小时前
深入解析Oracle SQL调优健康检查工具(SQLHC):从原理到实战优化
数据库·sql·oracle
寒山李白7 小时前
MySQL安装与配置详细讲解
数据库·mysql·配置安装
Chef_Chen7 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电8 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
文牧之8 小时前
PostgreSQL 的扩展pg_freespacemap
运维·数据库·postgresql
deriva8 小时前
某水表量每15分钟一报,然后某天示数清0了,重新报示值了 ,如何写sql 计算每日水量
数据库·sql