非关型数据库之MongoDB

举报
扎哇太枣糕 发表于 2022/05/12 14:22:53 2022/05/12
【摘要】 ​ 目录1 MongoDB简介1.1 初识MongoDB1.2 MongoDB与传统的关系型数据库的区别1.3 MongoDB存储结构1.4 BSON支持的数据类型2  MongoDB Shell操作3 MongoDB集群操作1 MongoDB简介1.1 初识MongoDB        MongoDB来源自英文单词"Humongous”,译为“庞大的”从中可见MongoDB的存储容量不可谓...

 目录

1 MongoDB简介

1.1 初识MongoDB

1.2 MongoDB与传统的关系型数据库的区别

1.3 MongoDB存储结构

1.4 BSON支持的数据类型

2  MongoDB Shell操作

3 MongoDB集群操作


1 MongoDB简介

1.1 初识MongoDB

        MongoDB来源自英文单词"Humongous”,译为“庞大的”从中可见MongoDB的存储容量不可谓小,MongoDB是一个开源的文档数据库,使用C++语言编写。其中主要的功能特性为:面向集合存储,易于存储数据类型的数据,模式自由,支持动态查询,支持完全索引,支持复制和故障恢复,使用高效的二进制数据存储,文件存储格式为BSON(JSON的一种二进制形式的存储格式)。

1.2 MongoDB与传统的关系型数据库的区别

存储结构对应关系
存储结构 关型数据库 MongoDB
数据库 database database
数据表/集合 table collection
行/文档 row document
列/字段(属性) column field
主键 primary key primary key
表连接 table join 不支持连接
嵌套关系 不支持嵌套 字段(属性)可以嵌套其他文档


结构上区别
关型数据库 MongoDB
存储结构(从大到小) 数据库、表、行 数据库、集合、文档、键值对
结构类型 表结构需要预定义 文档的结构是可变的
事务特性 ACID BASE















ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

BASE:基本可用(Basically Available)、软状态(Soft-state)、最终一致性(Eventually Consistent)

1.3 MongoDB存储结构

💥键值对

        MongoDB存储结构的基本结构单位是键值对,键的格式一般是字符串,值的格式可以是字符串、数值、文档等,当值的格式是文档时就是我们所说的嵌套键值对,其他都是基本键值对。键(Key)起到唯一索引的作用,区分大小写;值(Value)是键所对应的数据,通过键来获取其内容。

💥文档

        文档是由多个键值对的有序集合,使用{ }符号进行包裹键值对的顺序确定一个文档,也就是说就算两个文档的键值对内容完全一样,但是键值对顺序不一样,依然是两个文档。一个文档中的键重复时,后面的值覆盖前面的文档必须有一个“_id”的键来唯一标识该文档,自己创建或者默认生成。MongoDB中文档之间的关系包括嵌入和引用两种:

引用就是在一个文档里引用另一个文档里的值:

{
id: "joe",
name: "joe Bookreader"
}

{
patron_id: "joe",
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: "123456"
}

嵌入就是常说的嵌套键值对:

{
id: "joe",
name: "joe Bookreader"
address: {
         patron_id: "joe",
         street: "123 Fake Street",
         city: "Faketon",
         state: "MA",
         zip: "123456"
         }
}

💥集合

        集合是由多个文档构成的对象,许多文档储存在一个集合中。

💥数据库

        数据库是由许多的集合组成

1.4 BSON支持的数据类型

类型 描述
NULL 空值或不存在的字段 {"x":null}
Boolean true和false {"x":true}
String BSON编码是utf-8 {"x":"文档数据库"}
Number 数值(默认64位浮点数) {"x":3.14}
Array 数组 {"x":["a","b","c"]}
Object 内嵌文档 {"x":{"y":4.23}}
ObjectId 文档的唯一标识 {"x":ObjectId()}
Binary Data 二进制数据
JavaScript 代码
Date 日期 {"x":new Date()}
Timstamp 时间戳 
Regular Expression 正则表达式















2  MongoDB Shell操作

参考博客:

​​​​​c​​​​​​MongoDB Shell操作_扎哇太枣糕的博客-CSDN博客

3 MongoDB集群操作

参考博客:

MongoDB副本集、分片集的伪分布式部署(保姆级教程)_扎哇太枣糕的博客-CSDN博客

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。