什么是MongoDB ?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
主要特点
- MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。
- 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=”Sameer”,Address=”8 Gandhi Road”)来实现更快的排序。
- 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。 - MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- MongoDB安装简单
MongoDB 下载
MongoDB提供了可用于32位和64位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址:http://www.mongodb.org/downloads
• MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系统。
• MongoDB for Windows 32-bit 适合 32 位的 Window 系统及最新的 Windows Vista。 32 位系统上 MongoDB 的数据库最大为 2GB。
• MongoDB for Windows 64-bit Legacy 适合 64 位的 Windows Vista, Windows Server 2003, 及 Windows Server 2008 。
根据你的系统下载 32 位或 64 位的 .msi 文件,下载后双击该文件,按操作提示安装即可。
安装过程中,你可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。
创建数据目录
MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下((如: C:\ 或者 D:\ 等 )。
在本教程中,我们已经在C:盘 安装了 mongodb,现在让我们创建一个data的目录然后在data目录里创建db目录。
例如:D:\data\db
命令行下运行MongoDB服务器
记住 这个页面不要关闭 从新以管理员权限打开一个cmd
重开个管理员身份的cmd,如果你已经有某个服务名了,比如MongoDB,那么先把这个删了,sc delete MongoDB
将MongoDB服务器作为Windows服务运行:
以这种方式安装成本地服务,我遇到了无法在服务页面启动MongoDB的问题 ,我会在下面写出解决方式
在数据目录(D:\data\db)的父级目录(D:\data\)下创建目录及日志文件 \dbConf\mongodb.log(即:D:\data\dbdbConf\mongodb.log)
进入 MongoDB 安装目录的bin目录输入:
mongod.exe --dbpath d:\data\db --directoryperdb --logpath d:\data\dbConf\mongodb.log --logappend --serviceName MongoDB --install
命令解析:
继续输入指令net start MongoDB(MongoDB这个是第五步指定的服务名称)
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo.exe文件,MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
db 命令用于查看当前操作的文档(数据库):
安装完毕,我发现只可以在cmd中启动mongoDb,在服务中启动MongoBD时报错:window不能再本地计算机启动MongoDB,如下
不知道是什么问题 ,在网上找了很多教程,都无法解决 ,最终在一个网站上看了一个教程 ,需要创建一个配置文件
配置文件来管理MongoDB的配置
这里仅指定了几个常用项:
dbpath=D:\data\db #数据库路径
logpath=D:\data\dbConf\mongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
配置文件和相关目录建好后使用如下方式启动MongoDB
- 普通启动
mongod --config D:\MongoDB\etc\mongodb.conf
- 安装为Windows服务
如果你已经有某个服务名了,比如MongoDB,那么先把这个删了,sc delete MongoDB
sc delete MongoDB
mongod --config D:\MongoDB\etc\mongodb.conf --install
这里需要注意下当指定了日志文件后,无论使用配置文件指定还是在命令行指定,日志就都会输出到指定的日志文件去了,在命令行界面将看不到任何日志输出
如上,虽然已经把服务弄成windows服务,每次连数据库的时候,不需要先去启动mongo服务了。。但是shell连接数据库还是要先cd到mongo安装的bin目录下。。很麻烦。。
bin目录写到系统变量
1. 进入到高级系统设置;
2. 进入到环境变量;
3. 在系统变量里面找到变量名为Path双击进入;
4. 在变量值的结尾处加入;D:\MongoDB\Server\3.2\bin(这个就是mongo安装目录的bin目录,别漏掉了分号),保存;
5. 再新建一个CMD,先启动服务mongod.exe
6. 输入mongo试试。