文档章节

与MongoDB的第一次亲密接触

 没有人sdfsdf
发布于 2015/05/03 17:25
字数 2046
阅读 351
收藏 5

写在前面的

Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。---摘自百度百科

早就了解过了MongoDB的优势和神奇之处,但一直没有抽出时间来好好学学,觉得不能再拖了,今天终于打算正式开始好好学习一下MongoDB,我觉得自己也不是什么大牛,能力有限哈,所以这个系列的文章,算是对自己学习MongoDB过程中的记录和总结,谈不上什么教程,但是会对学习过程中遇到的问题,进行详细的分析,整理和总结,不过还是希望能帮到和我一样刚接触MongoDB的新手,如果您有什么好的意见或发现文章中的错误和不足,欢迎交流,批评指正。

安装MongoDB

说明

这里我会讲windows和linux环境下的安装,至于MAC OS的话,我就一穷学生,没有设备,只能靠小伙伴们自己研究啊,也希望有条件的小伙伴们将详细的安装过程分享出来(尽管网上有现成的) 传送门http://www.mongodb.org/downloads 至于windows和linux的版本,根据小伙伴们的需要自行决定 先来张图 download

windows环境下的安装与配置

1.windows环境下的是一个msi格式的安装包,直接双击打开即可: 这里写图片描述

2.继续 这里写图片描述 如果选择Complete的话,会默认安装到C盘,我的电脑C盘已经容不下更多东西了,就先择Custom,如下图: 这里写图片描述 修改安装目录,我的安装目录为D:\software\mongodb(截图时没注意),和自己需要的组件(不过建议全选),然后下一步进行安装。 3.将D:\software\mongodb\bin添加到环境变量中: 这里写图片描述 4.刚装完,有点兴奋,直接在命令行中向试试,结果出现下面的错误: 这里写图片描述 我忘了服务还没启动呢 得执行如下命令:

mongod --dbpath f:\MongoDB\data

f:\MongoDB\data这个路径指定了文件的存放路径

看到如下信息,说明启动成功了: 这里写图片描述 MongoDB监听的是27017端口,同时打开浏览器输入http://127.0.0.1:27017,则会看到如下提示:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

然后,再打开一个cmd,输入mongo命令链接数据库,出现如下提示:

2015-05-02T17:10:19.467+0800 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files MongoDB shell version: 3.0.2 connecting to: test

不过你可能嫌输命令的这种方式比较麻烦,你可以将启动命令写在批处理文件里,就像这样:

start mongod --dbpath F:\MongoDB\data

然后保存成MongoDB.bat,下次只要双击运行该脚本即可快速启动服务。 当然了,你也可以将MongoDB以服务的方式启动,不过我觉得在学习的过程中用处不大,小伙伴们可以自己尝试一下,如果有需要的话,我在后面会补上。

至此,windows环境下的mongodb就安装成功了。


要是觉得命令行不好用,推荐一个带图形化界面的软件:MongoVUE,就和navicat差不多,它有免费版的,就是功能少点,但学习过程中完全足够了 传送门:http://www.mongovue.com/ 这里写图片描述

连接数据库的过程和navicat差不多,大家可以自己动手试试,不清楚的欢迎留言询问。

###Linux环境下的安装与配置

1.首先还是得下载喽,我的环境是elementary OS 0.3 Freya (64-bit),这是一个基于 Ubuntu 14.04的linux系统,相当精美,号称是最漂亮的linux,体积不大,基本上除了界面之外,其他的基本上和Ubuntu 14.04没区别,在后面的叙述中,就当成 Ubuntu 14.04好了,有兴趣的小伙伴可以去官网看看,传送门http://elementary.io/ 所以Mongodb下载的时候就用ubuntu的好了: 附上下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.2.tgz 我下载的事这个版本的: mongodb-linux-x86_64-ubuntu1404-3.0.2.tgz

2.接着打开终端,切换到下载目录,然后执行解压缩命令,并查看解压后文件夹里的内容:

tar -xzvf mongodb-linux-x86_64-ubuntu1404-3.0.2.tgz -C .
ls -l mongodb-linux-x86_64-ubuntu1404-3.0.2

文件夹的内容

总用量 68 drwxrwxr-x 2 mybc724 mybc724 4096 5月 3 16:09 bin -rw-rw-r-- 1 mybc724 mybc724 34520 4月 9 04:43 GNU-AGPL-3.0 -rw-rw-r-- 1 mybc724 mybc724 1359 4月 9 04:43 README -rw-rw-r-- 1 mybc724 mybc724 22660 4月 9 04:43 THIRD-PARTY-NOTICES

为了便于管理,我比较喜欢将所非apt安装的软件统统挪到/opt目录下,顺便改个好记的名字:

sudo cp -R mongodb-linux-x86_64-ubuntu1404-3.0.2/ /opt/mongodb3.0.2

创建存放文档和日志的文件夹,(这个算是个人喜好,我觉得这么方便管理,你也可以使用默认的路径,/data/db) :

mkdir -p ~/mongodb/data ~mongodb/log

为了避免每次启动Mongodb的时候都要输入很长的路径,得将/opt/mongodb3.0.2/bin添加到PATH中,病是环境变量生效:

echo export 'PATH=/opt/mongodb3.0.2/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc

接下来就可以运行Mongodb啦:

mongod --dbpath=~/mongodb/data --logpath=~/mongodb/log

但不幸的是出现如下提示:

2015-05-03T16:39:59.999+0800 F CONTROL Failed global initialization: FileNotOpen Failed to open "/home/mybc724/~/mongodb/log"

看来是路径错了,再试试:

mongod --dbpath=/home/mybc724/mongodb/data --logpath=/home/mybc724/mongodb/log/logfile

好了,这下OK了~

有一点大家得注意一下 那就是在指定logpath的时候,必须要指明一个文件才行,如果只给个路径是不行的,会出现如下提示:

2015-05-03T16:46:53.584+0800 F CONTROL Failed global initialization: FileNotOpen logpath "/home/mybc724/mongodb/log" should name a file, not a directory.

另外,~/mybc724/mongodb/data,这样的路径写法也是不行的,必须写成/home/mybc724/mongodb/data才行,小伙伴们注意一下.

如果不指定--logpath,Mongodb会将本次运行过程中所有的信息输出到屏幕上,指定--logpath后Mongodb会将日志信息写入文件中,就像我上面指定的logfile,那么会在~/mongodb/log/下生成类似于这样的文件:logfile.2015-05-03T08-48-15

好了,我们现在测试一下是否能正常连接 输入命令mongo,即可进入shell环境:

MongoDB shell version: 3.0.2 connecting to: test Server has startup warnings: 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten]

当然了,启动一下服务就要写那么长的命令,很麻烦,这里设置一下别名:

echo 'alias mymongod="mongod --dbpath=/home/mybc724/mongodb/data --logpath=/home/mybc724/mongodb/log/logfile"' >> ~/.bashrc
source ~/.bashrc

注意,命令中>>与>的区别,别一不小心将配置文件覆盖了,最好备份一下

好了,试试看新命令:mymongod

~一切OK

##最后 到此,windows和linux环境下的Mongodb就安装完成了,写了这么多,连我都嫌自己啰嗦,不过谁让自己是菜鸟呢,希望这是一个良好的开端

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 3
码字总数 2754
作品 0
浦东
程序员
Henrique Lobo Weissmann: MongoDB 逐渐变得无关紧要

与 TokuMX 和 PostgreSQL 相比较使得 MongoDB 处于劣势。但它仍然是一款很好的产品,而且会继续改进来与这些替代产品竞争,然而目前来看它最多只能排在第三名。2015年MongoDB的改进和发展,我...

shezjl
2015/08/26
0
0
MongoDB加入到Windows服务的方法

MongoDB是一款开源的NoSQL数据库,主要应用于数据规模庞大的场合,并被视为Node.js的黄金搭档,由于它采用的是Binary JSON格式,所以与JavaScript具有任何语言都无法媲美的亲和力。关于它的具...

bengozhong
2017/10/20
0
0
Spring+Mongodb实战(持续更新中...)

本人文笔很烂请见谅,欢迎吐槽和各种拍砖!分享快乐! 1.准备工作 Spring Data MongoDB spring-data-mongodb是Spring对Monodb进行封装的Spring-Data项目的分支。点击上面的链接获取最新版。 ...

lee5hx
2014/03/29
0
2
最全面MongoDB安装与配置

数据是每一前端人员必定接触的一样,所有的数据都是后端来编写,如果自己想练习项目,却没有数据,而是写一些假数据,去编写,或者通过json-server搭建一个数据,今天我们就通过MongoDB来搭建...

小周sri的码农
08/06
0
0
如何在Ubuntu 18.04 LTS上安装和配置MongoDB

如何在Ubuntu 18.04 LTS上安装和配置MongoDB IMCN 18分钟前暂无评论 阅读 9 次 MongoDB是一款非关系型数据库,提供高性能,高可用性和自动扩展企业数据库。 MongoDB是一个非关系型数据库,因...

IMCN
05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
3
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部