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目录下时候,发现有日志,其内容如下:

016-04-28T21:42:47.003+0800I CONTROL  [main] Hotfix KB2731284orlater update isnotinstalled, willzero-out datafiles2016-04-28T21:42:47.071+0800I CONTROL  [initandlisten] MongoDB starting : pid=17916port=27017dbpath=C:\Program Files\MongoDB\Server\data32-bit host=YEGZT8JOIIU2LKY2016-04-28T21:42:47.072+0800I CONTROL  [initandlisten] targetMinOS: Windows Vista/Windows Server20082016-04-28T21:42:47.072+0800I CONTROL  [initandlisten] dbversionv3.2.52016-04-28T21:42:47.072+0800I CONTROL  [initandlisten] gitversion:34e65e5383f7ea1726332cb175b73077ec4a1b022016-04-28T21:42:47.072+0800I CONTROL  [initandlisten] allocator: tcmalloc2016-04-28T21:42:47.073+0800I CONTROL  [initandlisten] modules:none2016-04-28T21:42:47.073+0800I CONTROL  [initandlisten] build environment:2016-04-28T21:42:47.073+0800I CONTROL  [initandlisten]    distarch: i3862016-04-28T21:42:47.073+0800I CONTROL  [initandlisten]    target_arch: i3862016-04-28T21:42:47.073+0800I CONTROL  [initandlisten] options: { net: { port:27017}, storage: { dbPath:"C:\Program Files\MongoDB\Server\data"}, systemLog: { destination:"file", path:"C:\Program Files\MongoDB\Server\log\mongodb.log"} }2016-04-28T21:42:47.090+0800I STORAGE  [initandlisten] exceptionininitAndListen:28663Cannot start server. The default storage engine'wiredTiger'isnotavailablewiththis buildofmongod. Please specifyadifferent storage engine explicitly, e.g.--storageEngine=mmapv1., terminating2016-04-28T21:42:47.090+0800I CONTROL  [initandlisten] dbexit:  rc:100

1

2

3

4

5

6

7

8

9

10

11

12

13

这日志记录的跟,命令提示中提示的还不一样啊,怎么办?因为命令提示中,提示是因为日志没有开启造成的错误,而日志说引擎不合适。只能先一个尝试一下。那我不添加日志,执行如下命令 

mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --port=27017 


通过这个提示,看来这次确定了,是默认存储引擎不支持了。只好换一个引擎。执行如下命令:

mongod.exe --dbpath="C:\ProgramFiles\MongoDB\Server\data"  --logpath="C:\ProgramFiles\MongoDB\Server\log\mongodb.log" -storageEngine="mmapv1" --port=27017  --journal

1

执行结果如下: 


一直在等待连接中,此时我查看了一些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代码。如下图 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容