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

相关推荐
程序员敲代码吗1 分钟前
使用Plotly创建交互式图表
jvm·数据库·python
??(lxy)1 分钟前
GIT使用学习
git·学习
悟能不能悟2 分钟前
oracle中dd/mm/yyyy和dd/mm/rrrrr有什么不一样
数据库·oracle
im_AMBER3 分钟前
Leetcode 108 交换链表中的节点
数据结构·笔记·学习·算法·leetcode·链表
椰子今天很可爱4 分钟前
Redis基础知识介绍
数据库·redis·缓存
再卷还是菜8 分钟前
网安渗透学习小结--sql注入
数据库·sql·学习
LaoZhangGong12313 分钟前
学习TCP/IP的第8步:紧急数据
网络·stm32·单片机·学习·tcp/ip·以太网
陌上丨15 分钟前
Redis常用的数据类型有哪些?Zset的底层数据结构是什么?
数据结构·数据库·redis
求真求知的糖葫芦15 分钟前
微波工程4.3节散射矩阵(S参数矩阵)学习笔记(上)(自用)
笔记·学习·矩阵·射频工程
电商API_1800790524717 分钟前
得物商品详情API接入与优化实战指南
大数据·数据库·人工智能·数据分析·网络爬虫