首页 > 数据库 > MongoDB > 正文

十天掌握MongoDB之一:初识MongoDB

2020-03-14 13:23:29
字体:
来源:转载
供稿:网友

说到MongoDB,必须先从NoSQL说起。NoSQL(NoSQL = Not Only SQL) ,意即反SQL运动,是一项全新的数据库革命性运动,早期就有人提出,发展至2009 年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

NoSQL 数据库特点

优点:高并发读写、海量数据存储、高可扩展性及高可用性。

缺点:缺乏事务一致性、缺乏读写实时性及不支持复杂查询。

NoSQL数据库类型

1、key-value

Key指向Value的键值对,通常用hash table来实现。

产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB等。

2、列式数据库

以列簇式存储,将同一列数据存在一起。

产品:Cassandra、HBase、Riak等。

3、文档型数据库

Key-Value对应的键值对,Value为结构化数据。

产品:CouchDB、MongoDB等。

4、图结构数据库

以“图”为基本存储模型。

产品:Neo4J、InfoGrid、Infinite Graph等。

MongoDB简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较 复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB数据架构

十天掌握MongoDB之一:初识MongoDB

MongoDB

数据库命名规范

1.任意UTF-8字符串;

2.不能是空字符串;

3.不得包含以下字符:(空格)、.、$、/、/、/0;

4.长度不得超过64字节;

5.保留字:admin、local、config等;

集合命名规范

1.任意UTF-8字符串;

2.不能是空字符串;

3.不能包含/0、$;

4.不能以system.开头;

文档命名规范

1.任意UTF-8字符串;

2.不能是空字符串;

3.不能包含/0、$;

4.不能以_开头;

MongoDB的数据类型

MongoDB底层使用Bson来维护数据,Bson是一种二进制下的类似于Json的数据格式。MongoDB中值得一说的有以下几个数据类型:基本数据类型、数组、文档嵌套及ObjectId。

MongoDB的基本数据类型

null
bool true、false
数字 仅支持64位浮点数,其他类型的数字会自动转化为此格式
字符串 支持UTF-8字符集
日期 存储标准纪元开始的毫秒数,不含时区
regex 符合JavaScript语法的正则表达式
code 任何JavaScript代码
binary 可存储任意字节数的字节数组,但在Shell中无法使用
数组 对象集合或列表在MongoDB可以被存储为数组
嵌套文档 一个文档可以包含另外一个文档

MongoDB的

MongoDB 中的数组既可以作为有序对象(如列表)来操作,也可以作为无序对象(如集合)来操作。 MongoDB可以以原子操作的形式来修改或删除数组中的元素。

例如:

{

// 这个不是数组

"Status" : 0,

// 这个是空数组

"Messages" : [],

// 包含3个元素的数组

"ResponseBody" : [

"h010t00101025",

"h010t00101039",

"h010t00101040“

]

}

MongoDB的文档嵌套

文档式存储的特色就是允许文档对象的嵌套,这能够使我们的实体数据在 MongoDB 的存在形式更加自然。

例如:

// 根文档

{

"Status" : 0,

// 嵌套文档

"ResponseBody" : {

"CityName" : "北京",

"Keyword" : "钓鱼台",

// 再套一个数组,数组的每个元素又是文档,NB吧!

"Landmarks" : [

{ “Name” : “北京钓鱼台国际旅行社” },

{ "Name" : "钓鱼台“ }

]

}

}

MongoDB的objectid

ObjectId是_id (_id 是 MongoDB 在每个文档中的默认唯一标识的名称) 的默认类型。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表