史上最全MongoDB之初识篇

MongoDB系列文章目录

如果本文对你们的开发之路有所帮助,请帮忙点个赞,您的支持是我坚持写博客的动力

前言

本系列课程将带着大家以面试题的方式 深入分布式专题之MongoDB。这篇文章带着大家初识MongoDB

什么是MongoDB

  • MongoDB是一个基于 分布式文件存储 的数据库。由C++语言编写。
  • 支持的数据结构非常松散,数据格式是 BSON
  • 支持动态查询
  • 支持复制和故障恢复
  • 支持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言

BSON(binary json)与JSON的区别

  • Binary JSON ,和JSON一样支持内嵌的文档对象和数组对象,因此可以存储比较复杂的数据类型
  • BSON 具有更快的遍历速度
  • BSON 操作更简易
  • BSON 增加了额外的数据类型

MongoDB 历史版本

  • 2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。
  • 2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。
  • 2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。
  • 2013年08月20日,MongoDB 2.4.6 发布。
  • 2013年11月01日,MongoDB 2.4.8 发布。
  • 2017年03月17日,MongoDB 3.0.1发布。
  • 2018年08月06日,MongoDB 4.0.2发布,支持多文档事务。
  • 2019年08月13日,MongoDB 4.2.0 发布 ,引入分布式事务。

MongoDB 与关系型数据库(RDBMS)对比

共同点

关系型数据库(RDBMS)MongoDB
数据库(database)数据库(database)
表(table)集合(collection)
行(row)文档(document)
列(column)字段(field)
索引(index)索引(index)
主键(primary key)_id(字段)
视图(view)视图(view)
表链接(table join)聚合操作($lookup)

不同点

  • MongoDB具有半结构化特点。不需要进行字段声明,且集合中字段不需要完全相同
  • MongoDB没有外键约束,表连接需要使用聚合管道技术($lookup)实现

MongoDB 名称解释

名词解释
数据库(database)可以理解为逻辑上的名称空间,一个数据库包含多个不同名称的集合
集合(collection)相当于*关系型数据库(RDBMS)*中的表
文档(document)一个文档相当于数据表中的一行,由多个不同的字段组成
字段(field)文档中的一个属性,等同于关系型数据库(RDBMS) 的 列(column)
索引(index)独立的检索式数据结构,与SQL概念一致
_id每个文档中都拥有一个唯一的id字段
视图(view)虚拟的(非真实存在的)集合,与SQL中的视图类似,其通过聚合管道技术实现
聚合操作($lookup)用于实现"类似"表连接(tablejoin)的聚合操作符

MongoDB 相比其他数据库的优势

  • 文档存储
    MongoDB 采用BSON/JSON文档存储数据
  • 扩展性高且高可用
    MongoDB 支持数据分片,复制集提供99.999%高可用
  • 易于查询
    JSON 结构和对象模型接近,开发代码量低
  • 安全性高
    MongoDB客户端生成的查询为BSON对象,降低了SQL注入的攻击的危险
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

janyxe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值