每日一句
If no one else guards the world, then I will come forward.
如果没有他人捍卫这个世界,那么我将挺身而出。
概述
MongoDB次要是由文档(document)、汇合(collection)、数据库(database)这三局部组成的。类比于mysql的行、表、数据库。
体系结构
MYSQL 与 MongoDB比照
MongoDB与SQL的构造比照详解
SQL Terms/Concepts | MongoDB Terms/Concepts | 解释与阐明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/汇合 |
row | document or BSON document | 数据记录行/文档 |
column | field | 数据库字段/域 |
index | index | 索引 |
table joins | embedded 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