1. NoSQL(Not Only SQL )

意即“不仅仅是SQL” ,指的是非关系型的数据库

常见的NoSql(非关系型数据库)数据库


NoSql数据库优缺点

优势方面主要体现在下面几点:

  简单的扩展

  快速的读写

  低廉的成本

  灵活的数据模型

不足方面主要有下面几点:

  不提供对SQL的支持

  支持的特性不够丰富

  现有的产品不够成熟

2.MongoDB简介 --约10000条/秒

MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便,

1.主要特性有:

面向集合存储,易于存储对象类型的数据

模式自由

支持动态查询

支持完全索引,包含内部对象

支持复制和故障恢复

使用高效的二进制数据存储,包括大型对象

文件存储格式为BSON(一种JSON的扩展)




2.MongoDB基本概念介绍

1.文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多)

2.集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表

3.MongoDB的单个实例可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限

4.MongoDB自带简洁但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大

shell是功能完备的js解析器

5.每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键


文档:


mongoDB的核心概念,文档中的键值对是有序的,区分大小写,区分类型,


键:不能重复,不能含有空字符\0 , 这个字符用来表示键的结尾;


. 和 $ 有特殊意义,通常来说是被保留了,


_ 线开头的键是保留的


集合:


就是一组文档,是无模式的,即里面的文档可以各式各样,


但还有有必要划分集合,集合可以更好的区分文档类型,查询也更方便


集合名不能是空串""; 不能含有\0 空字符,它表示集合的结尾


集合名不能system开头,这是系统集合保留的前缀,


集合名不能含有$ 


子集合:


组织集合的一种惯例是使用"."字符分开的按命名空间划分的子集和,如blog.author, 这样做的目的只是为了组织结构更好些,也就是blog集合和子集合没有任何关系

数据库:

多个集合就组成数据库,一个mongoDB实例可以承载多个数据库,他们之间完全独立,个自有权限和控制,在磁盘上也放在不同的文件中,

数据库名可以是满足下列条件的任意UTF-8字符串:

不能是空串"" 不能含有'' 空格 . / $ \0 全部小写 最多64字节

记住: 数据库名最终会变成系统里的文件

保留数据库名:

admin : 这是root数据库,

local: 这个数据永远不会被复制,可以存储限于本地单台服务器的任意集合

config: 用于分片设置,保留分片相关信息

3.MongoDB数据类型


mongodb 27017 不通 mongodb not_SQL



4.安装mongoDB

MongoDB的安装非常简单,只需要将下载的MongoDB的压缩文件解压到任意目录,并将其中的bin目录加入到系统的path环境变量中即可。

mongodb 27017 不通 mongodb not_mongodb_02




1.指定数据库位置:

在启动MongoDB之前,要手动创建一个存放MongoDB数据文件的目录,如D:\mongo_data

如果目录不存在,或没有写权限,会启动失败

在命令行执行mongod --dbpath=D:\mongo_data

如果没有参数,数据默认保存在C:\data\db\下

2.启动mongo服务:在命令行中可以使用mongo命令连接到MongoDB服务器,如下,

输入mongo命令默认连接到本地的名称为test的数据库,

如果希望连接到远程数据库,可以使用mongo ip:port 加上"/库名",直接连接到库