MongoDB入门教程(一)

MongoDB简介

MongDB是一个高性能,开源,无模式的文档型NosQL数据库

主要功能特性:

1.文件存储格式BSON(一种json的扩展)
2.模式自由
数据格式不受限了表的结构
3.支持动态查询
4.支持完全索引
5.支持复制(其主从复制)和故障恢复
6.使用高效的二进制数据存储,包括大型对象
7.自动处理碎片,以支持云计算层次的扩展。
8.支持Java、Ruby、Python、C++、PHP等多种语言
9.内部支持JavaScript

MongoDB的优势

1.查询速度快
2.高并发。可以达到2万个并发。
3.高容量。支持10TB意思的数据量
MongoDB使用场景
1.网站数据
2.缓存
3.大尺寸、低价值的数据
4.高伸缩的场景
5.用于对象以及Json数据存储

MongoDB限制

1.在32位操作系统上,不支持大于2.5G的数据
2.单个文件大小限制16M
3.高度事务的系统
4.传统商业智能应用

MongoDB与其他数据库区别

这里写图片描述

MongoDB安装

在这里,主要讲解的是win下安装,关于Linux下安装,随后会添加上。
下载网址:官方网站(https://www.mongodb.org/downloads/#production
在这里使用的是win32
这里写图片描述
笔者下载老长时间才下完,估计是个人网速问题,
这里写图片描述

这里写图片描述
这里写图片描述
安装好之后,安装目录下,发现有如下目录
这里写图片描述

配置path路径[可选]

配置path路径目的便于,直接可以再命令提示符输入mongoDB命令,不需要每次在切换到mongoDB的bin目录。在[我的电脑]右键,选择[属性]=>[高级系统设置]=>[高级]=>[环境变量设置]=>系统变量里面的[path]修改,添加mongoDB的bin目录,我添加的目录是’C:\Program Files\MongoDB\Server\3.2\bin’
操作步骤截图如下:
这里写图片描述

启动MongDB服务端

参照官方网站:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#install-mongodb-community-edition
启动MongDB步骤如下

设置MongDB执行环境

官方原话如下:
Set up the MongoDB environment
1.MongoDB requires a data directory to store all data. MongoDB’s default data directory path is \data\db. Create this folder using the following commands from a Command Prompt:
md \data\db
mongoDB需要指定一个目录来存储数据。在win下在命令提示中,你可以使用md命令创建目录。在此,我将创建一个data目录和log目录,分别用于存放数据和日志。吐槽一下,感觉win下创建目录确实没有linux下方便。
这里写图片描述
此时该目录下创建目录如下
这里写图片描述

启动mongoDB(针对服务端)

官方原话如下:
To start MongoDB, run mongod.exe. For example, from the Command Prompt:
C:\mongodb\bin\mongod.exe
This starts the main MongoDB database process. The waiting for connections message in the console output indicates that the mongod.exe process is running successfully.
就是我们通过mongod.exe来启动mongoDB,启动了MongoDB主数据进程,如果出现等待连接的消息,则暗示着mongod.exe进程正在成功运行着。
好了,现在我们开始启动了。
启动命令如下:
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --logpath="C:\Program Files\MongoDB\Server\log\mongodb.log" --port=27017
如果没有配置mongoDB的path目录,需要先切换到mongoDB的bin目录下或是使用C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe去执行。
解析:dbpath指定数据存放目录,可自行指定
logpath指定日志路径,可以自行指定
port指定端口号,默认的是27017

此时既然爆出如下错误
这里写图片描述
也就是说32位系统默认情况下没有开启日志记录功能,请使用–journal开启。
但是当我进入C:\Program Files\MongoDB\Server\log目录下时候,发现有日志,其内容如下:

<code class="hljs livecodeserver has-numbering"><span class="hljs-number">016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.003</span>+<span class="hljs-number">0800</span> I CONTROL  [main] Hotfix KB2731284 <span class="hljs-operator">or</span> later update is <span class="hljs-operator">not</span> installed, will <span class="hljs-constant">zero</span>-out data <span class="hljs-built_in">files</span>
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.071</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] MongoDB starting : pid=<span class="hljs-number">17916</span> port=<span class="hljs-number">27017</span> dbpath=C:\Program Files\MongoDB\Server\data <span class="hljs-number">32</span>-bit host=YEGZT8JOIIU2LKY
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.072</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] targetMinOS: Windows Vista/Windows Server <span class="hljs-number">2008</span>
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.072</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] db <span class="hljs-built_in">version</span> v3<span class="hljs-number">.2</span><span class="hljs-number">.5</span>
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.072</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] git <span class="hljs-built_in">version</span>: <span class="hljs-number">34e65</span>e5383f7ea1726332cb175b73077ec4a1b02
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.072</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] allocator: tcmalloc
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.073</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] modules: <span class="hljs-constant">none</span>
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.073</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] build environment:
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.073</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten]     distarch: i386
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.073</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten]     target_arch: i386
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.073</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] options: { net: { port: <span class="hljs-number">27017</span> }, storage: { dbPath: <span class="hljs-string">"C:\Program Files\MongoDB\Server\data"</span> }, systemLog: { destination: <span class="hljs-string">"file"</span>, path: <span class="hljs-string">"C:\Program Files\MongoDB\Server\log\mongodb.log"</span> } }
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.090</span>+<span class="hljs-number">0800</span> I STORAGE  [initandlisten] exception <span class="hljs-operator">in</span> initAndListen: <span class="hljs-number">28663</span> Cannot start server. The default storage engine <span class="hljs-string">'wiredTiger'</span> is <span class="hljs-operator">not</span> available <span class="hljs-operator">with</span> this build <span class="hljs-operator">of</span> mongod. Please specify <span class="hljs-operator">a</span> different storage engine explicitly, e.g. <span class="hljs-comment">--storageEngine=mmapv1., terminating</span>
<span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">28</span>T21:<span class="hljs-number">42</span>:<span class="hljs-number">47.090</span>+<span class="hljs-number">0800</span> I CONTROL  [initandlisten] dbexit:  rc: <span class="hljs-number">100</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li></ul><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li></ul>

这日志记录的跟,命令提示中提示的还不一样啊,怎么办?因为命令提示中,提示是因为日志没有开启造成的错误,而日志说引擎不合适。只能先一个尝试一下。那我不添加日志,执行如下命令
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --port=27017
这里写图片描述
通过这个提示,看来这次确定了,是默认存储引擎不支持了。只好换一个引擎。执行如下命令:

<code class="hljs tex has-numbering">mongod.exe --dbpath="C:<span class="hljs-command">\Program</span> Files<span class="hljs-command">\MongoDB</span><span class="hljs-command">\Server</span><span class="hljs-command">\data</span>"  --logpath="C:<span class="hljs-command">\Program</span> Files<span class="hljs-command">\MongoDB</span><span class="hljs-command">\Server</span><span class="hljs-command">\log</span><span class="hljs-command">\mongodb</span>.log" -storageEngine="mmapv1" --port=27017  --journal</code><ul style="display: block;" class="pre-numbering"><li>1</li></ul><ul style="display: block;" class="pre-numbering"><li>1</li></ul>

执行结果如下:
这里写图片描述
一直在等待连接中,此时我查看了一些log日志
这里写图片描述
看来是启动了。当然也可以在浏览器中输入http://localhost:27017 如果出现如下界面,代码安装成功。
这里写图片描述

连接MongoDB(针对客户端)

官方原话如下:
Connect to MongoDB.¶

To connect to MongoDB through the mongo.exe shell, open another Command Prompt.

C:\mongodb\bin\mongo.exe
If you want to develop applications using .NET, see the documentation of C# and MongoDB for more information.

要想连接MongoDB,需要打开另外一个命令提示符窗口,通过mongo.exe来建立连接。如果要使用 .NET开发应用,需要查看C#文档和其他MongoDB手册,来获取更多信息。

说白了,就是客户端通过mongo.exe来连接mongoDB。其实直接输入mongo也一样,当然我这里面出现了一些警告信息,暂时可以不去理会。
这里写图片描述

客户端连接mongoDB方式如下(里面的mongoDB也可以换成mongo.exe)
这里写图片描述

常用命令

1.db.help()
查看命令提示
这里写图片描述
2.db
查看当前所在数据库的名字
这里写图片描述
3.use命令
use+数据库名 表示切换或是创建数据库。和MySQL中use的唯一不同点,就是当数据库不存在的时候,MongoDB中的use可以创建数据库。
这里写图片描述
4.show dbs
显示数据库,需要注意的是show dbs,只会显示有数据的库,没有数据的库,是不会显示的。下图中,dqs数据库中,开始没有数据,所以不会显示,当我插入一条数据库后,show dbs 就会显示它。
这里写图片描述
5.db.dropDatabase()
删除当前数据。
删除之前
这里写图片描述
执行删除操作,删除之后,当前库不变化。
这里写图片描述
删除之后,数据库文件也没有了。
这里写图片描述
6.db.stats()
查看当前数据的状态
这里写图片描述
7.db.version()
查看mongoDB版本
8.db.getMongo()
查看当前连接机器的ip
这里写图片描述
9.mongoDB对支持JavaScript
因为mongoDB支持JavaScript,所以可以直接在命令提示中输入js代码。如下图
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值