Advertisement

MongoDB是什么?有什么好处?什么时候用?

阅读量:

一、MongoDB的相关概念

1.1 MongoDB简介(是什么?)

  • 采用C++编程语言开发
  • 基于分布式文件存储实现的一个开源、高性能的非关系型数据存储方案
  • 基于MySQL的关系型数据库模型的核心特征是非关系型数据建模特点及其高度灵活性
  • 其数据模型具有高度灵活性其支持的数据结构非常松散是一种类似于JSON的格式叫BSON可存储比较复杂的数据类型又相当灵活
  • 每个MongoDB文档都是一个对象其中包含一组字段和对应的值通过键值对的形式组织数据这种组织方式使得MongoDB非常适合处理复杂的和多样化数据类型

1.2 业务应用场景(什么时候用到)

1.2.1 业务背景

克服

“三高”要求主要体现在以下几个方面:
* 高性能对于提升数据库处理大量并发读写操作至关重要
* 大规模存储系统必须具备高效管理海量数据的能力
* 高强度可扩展性和高强度可靠性是现代数据库系统设计中不可或缺的关键要素

1.2.2 具体的应用场景
  • 社交平台:基于MongoDB实现用户的个人资料管理功能,并支持发布状态更新记录(通过位置服务实现附近的人关注及点赞等功能)
    • 游戏环境:采用MongoDB作为数据库管理核心角色数据(包括玩家装备配置及在线积分等字段),支持便捷的数据查询及高效的数据操作
    • 物流系统:应用MongoDB技术对订单全流程参与方的信息进行全面管理(采用嵌套列表结构实现高效的数据关联)
    • 物联网领域:借助MongoDB对各终端设备状态变化进行实时采集与分析(支持多维度数据特征值提取与关联式分析)
    • 直播平台:基于MongoDB构建实时互动数据流管理系统(支持批量导入功能以及离线数据分析需求)
1.2.3 什么时候选择使用MongoDB?
  • 数据规模较大
    • 数据的写入频率较高(读写频率均较高)
    • 低价值的数据,在事务性要求上不强求一致
    • 新型的应用系统,在需求可能发生变化的情况下难以预先确定其数据模型
    • 系统必须保证存储的数据不会丢失
    • 基于地理位置和文本内容进行查询操作的需求较多

1.3 体系结构

1.3.1 与关系型数据库的简单对比
SQL/概念 MongoDB术语/概念
database(数据库) database(数据库)
table(表) collection(集合)
row(行) document(文档)
column(数据字段) field(域/字段)
index(索引) index(索引)
table joins(表连接) 不支持
不支持 嵌入文档【MongoDB通过嵌入文档来替代多表连接】
primary.key(主键) primary.key(主键)【MongoDB自动将_id字段设置为主键】
1.3.2 三个基本概念的概述

数据库(database):合法的命名规则

复制代码
1. 数据库名是`utf-8字符串`,最长`64`个字符
2. `非空字符串`,不能含有`" , . , $ ,\ , \0`
3. 应该全部`小写`

集合(collection):合法的集合名

复制代码
1.

集合名不允许为空字符串 ""

复制代码
2.

集合名禁止包含空字符 \0(该空字符标识集合名称的结束),因此在创建时必须避免使用它。

复制代码
3.

用户定义的集合名称不得以 system. 开头(此前缀用于标识系统相关项)。

复制代码
4.

用户在创建时所命名的集合不得包含保留符号 $

文档(document):MongoDB中数据的基本单元是其核心组成部分,在结构上与传统的关系型数据库中的行相似。

  1. 举个🌰
复制代码
>     {
>       "name":"may",
>       "age":2,
>       "detiles":{
>                       "address":"",
>                       "phone":"12345678",
>                     "others":""
>                       }
>     }
>  
>  
>       
>       
>       
>       
>       
>       
>       
>       
>       
>  
>
  1. 一些说明

值: 字符串,数值类型,还可以是其他的文档;

键:1⃣️字符串,可以是任意的 UTF-8字符

应避免在键名中使用\0空字符。因为它们会被Markdown解析为行末的结束符。\n\n这些\.\$被视为保留字。\n\n应避免将它们用作标识键名称的符号。\n\n下划线也不适合用作键名称中的符号。

​ 3⃣️键默认区分大小写,同一个文档中不允许出现重复键。(Name/name)

1.4 MongoDB的特点

1.4.1 高性能

MongoDB使用嵌入型数据模型提供高性能的数据持久性

通过提升查询速度优化了文本存储方案,并能够有效满足信息检索需求。通过实现数据自动生成失效标记实现了长期信息的有效存储。基于地理位置编码的技术为开发多样化的O2O服务系统提供了技术支持

1.4.2 高可用性

MongoDB的副本集合(replica set)是一种高效的数据组织方式,在发生故障时能够快速切换到备用节点完成数据处理,并且通过多副本机制确保数据的安全性与可靠性

1.4.3 高扩展性
  • 海量数据存储,服务能力水平扩展
1.4.4 丰富的查询支持
  • 基本的增删改查和一些数据聚合、文本搜索和地理空间查询
1.4.4 其他特点
  • 无模式(没有明显的列)
  • 灵活的文档类型(数据结构较为松散)

想继续深入学习的小伙伴可以点击下方链接🔗

MongoDB Encyclopedia

全部评论 (0)

还没有任何评论哟~