Mongodb安装和使用

来源:互联网 发布:淘宝订单管理系统介绍 编辑:程序博客网 时间:2024/05/22 17:31

NoSql数据库的优缺点:

优点:

1.简单的拓展

2.快速的读写

3.低廉的成本

4.灵活的数据模型


缺点:

1.不提供对sql的支持

2.支持的特性不够丰富

3.现有的产品不够成熟


mongodb特性:

1.面向集合

数据被分组存储在数据集中被称为一个集合,每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档,集合的概念类似关系型数据库里的表,不同的是他不需要定义任何模式

2.模式自由

集合里面没有列和行的概念,下面两个记录可以存在于同一个集合里面:

{"name":"mongo"}

{"age":25"

3.文档型

存储的数据是键值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档,每一个文档相当于关系数据库中的一条记录


特性:

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

2.模式自由

3.支持动态查询

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

5.支持复制和故障恢复

6.使用高效的二进制数据存储,包括大型对象(如视频等)

7.自动处理碎片,以支持云计算层次的拓展性

8.文件存储格式为BSON(json的二进制格式)


mongodb适用场景:

1.持久化缓存层

2.高效的实时性

3.用于对象及json数据的存储

4.高伸缩性的场景

5.大尺寸,低价值的数据存储


不适用场景:

1.要求高度事务性的系统

2.传统的商业智能应用

3.复杂多表查询


mongodb安装:

1.下载mongodb,并解压

2.新建路径,如D:\mongodb,将解压出来的bin目录复制到该目录下

3.在D:\mongodb目录下在新建data目录,在data目录下新建两个目录:db和log。//db为数据库目录、log为日志目录

4.打开命令行,进入目录D:\mongodb\bin;输入mongod.exe --dbpath D:/mongodb/data/db,可能会提示waiting for connections on port 27017”时,到浏览器中输入地址“localhost:27017”,ok! 回到doc窗口。可能会看到“admin web console waiting for connections on port 28017 ”,再回到浏览器。输入“localhost:28017”,ok!

5.打开另外一个dos窗口,进入到d:\mongodb\bin目录,执行命令“D:\mongodb\bin>mongo”,可以看到

MongoDB shell version: 2.4.8
connecting to: test

 OK!

6.可以添加到系统服务中,以管理员身份启动命令行,进入到bin目录下,运行命令mongod -dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\mongodb.log" --install --serviceName "MongoDB" 在计算机-管理-服务和应用程序中查看。

安装注意事项:目录一定不能出现中文


MongoDB的体系结构分析

1.逻辑结构关系对比

关系型数据库:

MySql由数据库(database),表(table),记录(rows)三个层次概念组成

非关系型数据库:

MongoDB由数据库(database),集合(collection),文档对象(document)三个层次盖帘组成

MongoDB里的集合对应于关系型数据库里的表,但是集合中没有列,行和关系的概念,集合中只有文档,一个文档就相当于一条记录,这体现了模式自由的特点

2.数据存储结构:

MySql的数据存储结构:

mysql的每个数据库存放在一个与数据库同名的文件夹中,mysql如果使用myisam存储引擎,数据库文件类型就包括.frm  MYD  MYI,

mongoDB的数据存储结构:

mogoDB默认目录是/data/db,它负责存储所有的mongoDB的数据文件,在mongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。所以如果系统中有一个叫做mydb的数据,那么构成mydb这个数据库的文件就会有mydb.ns,mydb.0,mydb.1等组成


3.mongoDB数据类型

mongoDB的文档使用BSON(Binary JSON)来组织数据,BSON类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null,布尔,数字,字符串,数组,对象),不能完全满足复杂业务的需要,因此,BSON还提供日期,32位数字,64位数字等类型

1.null

null类型用于表示空值或不存在的字段

如:{“one":null}


2.布尔类型

布尔类型有两种值:true false

如:{"one":true}


3.32位整数

mongoDB的控制台使用JS引擎进行输入,而JS仅支持64位浮点数,所以32位整数将会被自动转义


4.64位整数

64位整数与32位整数一样,在MongoDB控制台使用时,会转义成64位浮点数


5.64位浮点数

MongoDB控制台数字的默认类型

如:{”one“:2.02} {”one“:10}


6.字符串

UTF-8字符串都可以表示为字符串类型的数据

如:{”one“:”hello world"}


7.符号

在MongoDB控制台中不支持这种类型,将自动转义成字符串


8.ObjectId类型

对象id是文档中唯一的12位的ID

0|1|2|3|4|5|6|7|8|9|10|11

时间戳 | 机器 | PID | 计数器

如:ObjectId("4fjei39djfke39234jikjdf9ejf“)


9.日期

注意:使用的时候要加上new

如:{”one“:new Date()}


10.正则表达式

文档键值可以包含正则表达式,其正则表达式采用JS语法来表示

如:{”one":/ho/i}


11.文档中可以包含JS代码

如:{“one": function(){/*....*/}}


12.数组

文档中键值可以表示为数组,在数组内还可以嵌套数组

如:{"x":["a","b",["c","d"]}


13.内嵌文档

文档可以包含别的文档,也可以作为值嵌入到父文档中

如:{"x":{"name":"Tom","age":20}}


五。常用命令

控制台的基本操作命令

1.如果想查看当前连接那个数据库,->db

2.查看用户列表 ->db.system.users.find()

3.查看所有用户->show users

4.查看所有数据库->show dbs

5.查看所有集合->show collections

6.删除当前的数据库->db.dropDatabase()

7.想知道mongodb支持哪些命令->help

8.删除collection db集合名->drop()

9.想知道当前数据库支持哪些方法:db.help()

10.想知道当前集合支持哪些方法->db.user.help(), user为集合名












0 0
原创粉丝点击