资讯专栏INFORMATION COLUMN

与MongoDB的第一次亲密接触

crossoverJie / 863人阅读

摘要:写在前面的是目前在行业非常流行的一种非关系型数据库其灵活的数据存储方式备受当前从业人员的青睐。很好的实现了面向对象的思想思想在中每一条记录都是一个对象。

写在前面的
  

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的版本,根据小伙伴们的需要自行决定
先来张图

windows环境下的安装与配置

1.windows环境下的是一个msi格式的安装包,直接双击打开即可:

2.继续

如果选择Complete的话,会默认安装到C盘,我的电脑C盘已经容不下更多东西了,就先择Custom,如下图:

修改安装目录,我的安装目录为D:softwaremongodb(截图时没注意),和自己需要的组件(不过建议全选),然后下一步进行安装。
3.将D:softwaremongodbin添加到环境变量中:

4.刚装完,有点兴奋,直接在命令行中向试试,结果出现下面的错误:

我忘了服务还没启动呢
得执行如下命令:

mongod --dbpath f:MongoDBdata

f:MongoDBdata这个路径指定了文件的存放路径

看到如下信息,说明启动成功了:

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:MongoDBdata

然后保存成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...
我下载的事这个版本的:
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就安装完成了,写了这么多,连我都嫌自己啰嗦,不过谁让自己是菜鸟呢,希望这是一个良好的开端

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18755.html

相关文章

  • Rust 社区亲密接触!首届 RustCon Asia 来了

    摘要:来了由秘猿科技与联合主办,亚洲第一届大会将于月日在中国北京正式开启。将是一次亚洲社区的大聚会,也因为此次大会,亚洲本土的社区连接到了全球其它地区的社区。未来,我们将推进到亚洲的其他国家,更好的促进当地社区与全球社区的合作和互助。 showImg(https://segmentfault.com/img/bVbqUjV?w=1089&h=647); RustCon Asia 来了!由秘猿...

    Cristalven 评论0 收藏0
  • 亲密字符串

    摘要:在上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。二是这两个字符串不相等的情况。然后统计字母不一样的数量是否为只需要交换两个字母的位置,如果大于则不是亲密字符串。 在leetCode上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。 亲密字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,...

    骞讳护 评论0 收藏0
  • 聊聊MongoDB - MongoDB使用感想

    摘要:旨在为应用提供可扩展的高性能数据存储解决方案。,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。目前的最新版本为,最新版本的在我看来更像的数据库,功能更是越发强大。一些主流的介绍。 简述 工作中经常接触MongoDB,学习上也有对它进行一些研究,感觉MongoDB这种Nosql类型的数据库给我在开发上带来很多便捷,同时也解决了很多程序开发过...

    lolomaco 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<