前边介绍了MongoDB的大概理论知识,这篇来对MongoDB进行一下安装使用,支持安装在windows和linux上,当然了更多情况下我们是安装在linux上,因为毕竟服务器用linux的还是主流,当然了对于不同的系统,MongoDB的安装使用等其实都基本相同的,所以不用太在意这个,我们学习在那个平台上都是可以的。好,下载MongoDB:http://www.mongodb.org/downloads,根据我们的需要进行安装。
1,解压安装:将下载好的MongoDB解压到想要安装的路径下即可,例如:d:\mongodb
2,建文件夹:建立数据存放文件夹,例如:d:\mongodb\data\db;建立日志存放文件夹,例如:d:\mongodb\log\mongodb.log。(根据实际情况而定,不是固定的,只要有存放数据和日志的文件夹即可)
3,Win+R进入“运行”输入cmd,进入dos窗口,cd命令进入d:\mongodb\bin下,然后运行:mongod --dbpath"d:\mongodb\data\db\" --logpath "d:\mongodb\log\mongodb.log,即可运行mongodb服务。注意,mongod,dbpath,logpath几个关键字。这里我们都可以查看bin下的命令,我们用的都是这些,通过“命令-help”进行查看其参数即可。
4,进入数据库:mongodb的默认端口是27017,直接使用mongo命令即可进入数据库。然后进行各种database,collection,document进行增删改查的操作。但是这里的命令窗口不能关闭,要不mongodb的服务将停止。
5,让服务随电脑启动一起启动,在dos窗口中输入:
mongod --dbpath "d:\mongodb\data\db" --logpath"d:\mongodb\data\log\mongodb.log" --install --serviceName"MongoDB"
英文翻译也可以看出,是将这个启动mongodb的服务命令,加载到电脑服务中,服务名字叫做"MongoDB"。
然后启动即可:NET START MongoDB
6,关闭MongoDB服务,并关闭随机启动:
NET stop MongoDB (关闭服务)
mongod --dbpath"d:\mongodb\data\db" --logpath "d:\mongodb\data\log\mongodb.log" --remove--serviceName "MongoDB"
好,这样就算基本完成了,当然linux中和这也是一样的,最起码bin下的命令是通用的,需要我们的是掌握一些linux的操作命令才行。
看一下常用命令:
- show dbs 显示数据库列表
- use dbname 进入dbname数据库,大小写敏感,没有这个数据库也不要紧
- show collections 显示数据库中的集合,相当于表格
对于数据库的增删改查及其命令,下篇简单介绍。剩下简单看一下MongoDB的体系架构,看一张图吧,感觉挺清楚明了:
里边可以存的数据类型:
- null null用于表示空值或者不存在的字段。 {"x":null}
- 布尔 布尔类型有两个值'true'和'false1'. {"X":true}
- 32位整数 类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被自动转换。
- 64位整数 不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数,
- 64位浮点数 shell中的数字都是这种类型。下面的表示都是浮点数: {"X" : 3.1415926} {"X" : 3}
- 字符串 UTF-8字符串都可表示为字符串类型的数据: {"x" : "foobar"}
- 符号 不支持这种类型。shell将数据库里的符号类型转换成字符串。
- 对象id 对象id是文档的12字节的唯一 ID, {"X" :ObjectId() }
- 日期 日期类型存储的是从标准纪元开始的毫秒数。不存储时区: {"X" : new Date()}
- 正则表达式 文档中可以包含正则表达式,采用JavaScript的正则表达式语法: {"x" : /foobar/i}
- 代码 文档中还可以包含JavaScript代码:{"x" : function() { /* …… */ }}
- 二进制数据 二进制数据可以由任意字节的串组成。不过shell中无法使用。
- 最大值 BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。
- 最小值 BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。
- 未定义 文档中也可以使用未定义类型:{"x":undefined}
- 数组 值的集合或者列表可以表示成数组:{"x" : ["a", "b", "c"]}
- 内嵌文档 文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的:{"x" : {"food" : "noodle"}}
当然了,为了更加方便的操作MongoDB,也提供了类似PL/SQLdeveloper(连接Oracle),Mysql Front,Navicat Premium 等连接数据库的工具,这里看下MongoVUE,很是不错,看一下界面:
好,剩下我们就按照数据库思路学习把,什么增删改查,什么分布,负载均衡等等,看后边的总结。