每日一句

If no one else guards the world, then I will come forward.
如果没有他人捍卫这个世界,那么我将挺身而出。

概述

MongoDB次要是由文档(document)、汇合(collection)、数据库(database)这三局部组成的。类比于mysql的行、表、数据库。

体系结构

MYSQL 与 MongoDB比照

MongoDB与SQL的构造比照详解

SQL Terms/ConceptsMongoDB Terms/Concepts解释与阐明
databasedatabase数据库
tablecollection数据库表/汇合
rowdocument or BSON document数据记录行/文档
columnfield数据库字段/域
indexindex索引
table joinsembedded documents and linking表连贯,MongoDB不反对,MongoDB通过嵌入式文档来代替多表连贯
primary key Specify any unique column or column combination as primary key.primary key In MongoDB, the primary key is automatically set to the _id field.主键,MongoDB主动将_id字段设置为主键
aggregation (e.g. group by)aggregation pipeline See the SQL to Aggregation Mapping Chart.

数据模型

MongoDB的最小存储单位就是文档(document)对象。文档(document)对象对应于关系型数据库的行。数据在MongoDB中以BSON ( Binary-JSON)文档的格局存储在磁盘上。

BSON ( Binary Serialized Document Format )是一品种json的一种二进制模式的存储格局,简称Binary SON。

BSON和SON一样,反对内嵌的文档对象和数组对象,然而BSON有JSON没有的一些数据类型,如Date和BinData类型。

BSON采纳了相似于C语言构造体的名称、对示意办法,反对内嵌的文档对象和数组对象,具备轻量性、可遍历性、高效性的三个特点,能够无效形容非结构化数据和结构化数据。

这种格局的长处是灵活性高,但它的毛病是空间利用率不是很现实。

Bson中,除了根本的SON类型:string integer,boolean,double,nullarray和object , mongo还应用了非凡的数据类型。

这些类型包含date,object idbinary data,regular expression和code。

每一个驱动都以特定语言的形式实现了这些类型,查看你的驱动的文档来获取详细信息。
BSON数据类型参考列表:

数据类型形容举例
字符串UTF-8字符串都可示意为字符串类型的数据{"x" : "foobar"}
对象id对象id是文档的12字节的惟一 ID{"X" :ObjectId() }
布尔值真或者假:true或者false{"x":true}+
数组值的汇合或者列表能够示意成数组{"x" : ["a", "b", "c"]}
32位整数类型不可用。JavaScript仅反对64位浮点数,所以32位整数会被主动转换。shell是不反对该类型的,shell中默认会转换成64位浮点数
64位整数不反对这个类型。shell会应用一个非凡的内嵌文档来显示64位整数shell是不反对该类型的,shell中默认会转换成64位浮点数
64位浮点数shell中的数字就是这一种类型{"x":3.14159,"y":3}
null示意空值或者未定义的对象{"x":null}
undefifined文档中也能够应用未定义类型{"x":undefifined}
符号shell不反对,shell会将数据库中的符号类型的数据主动转换成字符串
正则表达式文档中能够蕴含正则表达式,采纳JavaScript的正则表达式语法{"x" : /foobar/i}
代码文档中还能够蕴含JavaScript代码{"x" : function() { / …… / }}
二进制数据二进制数据能够由任意字节的串组成,不过shell中无奈应用
最大值/最小值BSON包含一个非凡类型,示意可能的最大值。shell中没有这个类型。

提醒:

shell默认应用64位浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,能够应用NumberInt(4字节符号整数)或NumberLong(8字节符

号整数),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}

美文佳句

读过一段话,觉得很有感触:温顺的人通常是这样诞生的,他们亲身经历过许许多多的难,过后决定不再让其他人像本人这般惆怅。这份体贴,人们称之为温顺。

每个人的经验不同,但我置信,温顺的人必然都是具备同理心的人。他们晓得有些话有些行为会让人不难受,所以能将心比心,在尊重本人的同时也尊重他人。要想被别人温顺以待,就要先学会温顺待人。

你好,我是yltrcc,日常分享技术点滴,欢送关注我的公众号:ylcoder