250_Mongodb概述_文档类型

网友投稿 569 2022-05-29

1 Nosql vs RDBMS

功能/特点

Nosql

关系型数据库

强一致性和弱一致性

CAP定理 最终一致性, 非ACID

严格一致性 ACID

二位/多维表

键-值对存储, 列存储,文档存储,图形数据库

二维表, 数据和关系都存储在单独表中

结构化和非结构化

非结构化,半结构化,没有声明性查询语言

结构化查询语言

强一致性和弱一致性

弱事物

强事物

Join强/弱

弱 没有预定义模式

强,数据操作语言, 数据定义语言

成本代价

扩展性

强,高性能,高可用性和可伸缩性

2 Mongo 应用场景

MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等, 以下是几个实际的应用案例:

游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储, 方便查询、更新 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以MongoDB 内嵌 数组的形式来存储,一次查询就能将订单所有的变更读取出来。 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引 实现附近的人、地点等功能 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这 些信息进行多维度的分析 视频直播,使用 MongoDB 存储用户信息、礼物信息等

不适合使用MongoDB

1. 高度事务性系统:例如银行、财务等系统。MongoDB对事物的支持较弱; 2. 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、 高度优化的查询方式; 3. 使用sql方便的时候;数据结构相对固定,使用sql进行查询统计更加便利的时候;

3 MongoDB概念

概念

MySQL

MongoDB

数据库

database

database

table

Collection

数据行

row

document

字段

Column

Field

索引

Index

Index

表关联

Join

250_Mongodb概述_文档类型

Embedding & linkeding

分片/分区

Partition

Shard

分区键

partition key

sharding Key

4 MongoDB文档

MongoDB文档类似于JSON对象,称为BSON。字段的值可以包括其他文档,数组和文档数组

5 MongoDB中的Bson数据类型

Bson是JSON文档的二进制表示形式,它包含比JSON更多的数据类型

Type

Number

Alias

Notes

Double

1

双精度浮点值。用于存储浮点值

String

2

字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合 法的

Object

3

用于内嵌文档

Array

4

用于将数组或列表或多个值存储为一个键

Binary data

5

二进制数据。用于存储二进制数据

Undefined

6

“undefined”

Deprecated

ObjectId

7

ObjectId

Boolean

8

“bool”

Date

9

日期时间。用 UNIX 时间格式来存储当前日期或时间。可以指定自己的日期时间: 创建 Date 对象,传入年月日信息

Null

10

用于创建空值

Regular Expression

11

正则表达式类型。用于存储正则表达式

DBPointer

12

“dbPointer”

Deprecated

JavaScript

13

“javascript”

Symbol

14

“symbol”

Deprecated

JavaScript (with scope)

15

JavaScript (with scope)

32-bit integer

16

“int”

Timestamp

17

MongoDB复制和Sharing使用的特殊内部类型。前4个字节是增量,第二4字节是时 间戳。

64-bit integer

18

64-bit integer

Decimal128

19

“decimal”

Min key

-1

比所有其他可能的BSON元素值都低的特殊类型

Max key

127

比所有其他可能的BSON元件值更高的特殊类型

MongoDB 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:非昇腾设备开发环境搭建-Ubuntu安装MindStudio
下一篇:matlab快速入门(14):获取文档帮助
相关文章