【IT168 專稿】目前,NOSQL在業(yè)界正發(fā)展的如火如荼,其中Mongodb是其中十分優(yōu)秀的一員,MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,由C++語言編寫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。在本系列教程中,將分三部分指導(dǎo)對(duì)Mongodb的學(xué)習(xí),在第一部分中,將簡單介紹Mongodb的安裝和基本使用方法,在第二部分中,將介紹Java對(duì)Mongodb的編程操作,在第三部分中,將介紹Spring對(duì)Mongodb的編程操作。 Mongodb在Windows上的安裝 首先,我們到Mongodb的官方網(wǎng)站http://www./downloads下載,下載的版本目前是1.8.1,下載后,解壓到文件夾,比如C:\mongodb-win32-1.8.1。接下來,我們可以觀察下,該文件夾下有如下文件: 
可以看到,mongodb可謂十分簡單,只有10個(gè)文件。接下來,我們創(chuàng)建一個(gè)數(shù)據(jù)庫文件存放的目錄,這里設(shè)定為c:\mymongodb。然后可以在命令行方式下啟動(dòng)mongodb了,運(yùn)行如下命令:  C:\mongodb -win32 -1.8. 1\bin >mongod --dbpath "c:\mymongodb"
 當(dāng)出現(xiàn)如下提示信息時(shí),即代表已經(jīng)成功啟動(dòng)了mongodb   Fri Apr 29 17: 15: 34 [initandlisten] MongoDB starting :  pid =5280 port =27017 dbpath =c:\mymongodb 32-bi  ...  Fri Apr 29 17: 15: 34 [initandlisten] waiting for connections on port 27017 Fri Apr 29 17: 15: 34 [websvr] web admin interface listening on port 28017 在上面的信息中,我們注意到,mongodb在端口27017進(jìn)行了監(jiān)聽來自客戶端的連接,而在28017端口,則啟用了web界面的管理工具,因此我們可以通過http://localhost:28017進(jìn)行訪問,可以看到如下的界面:  ▲點(diǎn)擊查看大圖
接下來,我們學(xué)習(xí)下,如何將mongodb安裝成windows 中的服務(wù),首先我們?cè)趍ongodb下,可以通過—help選項(xiàng),查看相關(guān)的幫助指令,如下: 可以看到,--install和—remove兩個(gè)參數(shù)正是我們需要的。因此,將mongodb安裝成windows服務(wù)的命令如下:  mongod --dbpath "c:\mymongodb" --logpath "c:\mymongodb\logs.txt" --install --serviceName "MongoDB" 上面的命令行中,用—dbpath參數(shù)指出了數(shù)據(jù)庫的目錄,--logpath則指出了日志存放的目錄,而—serviceName參數(shù)則指出了,命名安裝的服務(wù)名為MongoDB,運(yùn)行后有如下提示: all output going to: c:\mymongodb\logs.txt  Creating service MongoDB.  Service creation successful.  Service can be started from the command line via 'net start "MongoDB"'. 并且可以在windows的控制面板中的服務(wù)中,看到該服務(wù)。而卸載服務(wù)的命令也很簡單,如下:  mongod --remove --serviceName "MongoDB"
在Ubuntu上安裝Mongodb Ubuntu是目前十分受歡迎的UNIX系統(tǒng)的之一,本文將介紹如何在Ubuntu上進(jìn)行安裝mongodb。步驟如下: 1) 首先將如下的語句添加到/etc/apt/sources.list文件的最末,以便將包含最新版本的mongodb發(fā)行包進(jìn)行下載deb http://downloads-distro./repo/ubuntu-upstart dist 10gen,修改后的sources.list文件如下:  #...content omitted ...  ## This software is not part of Ubuntu, but is offered by third -party  ## developers who want to ship their latest software.  deb http: //extras.ubuntu.com /ubuntu natty main  deb -src http: //extras.ubuntu.com /ubuntu natty main  #mongo repo ###############new line  deb http: //downloads -distro. /repo /ubuntu -upstart dist 10gen 2) 更新包  sudo apt -get update 3) 增加GPG KEY 10gen 包需要GPG KEY,因此需要導(dǎo)入:  sudo apt -key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 4)安裝 mongodb-10gen 一切準(zhǔn)備好后,就可以安裝了,命令如下:  sudo apt -get install mongodb -10gen 5) 修改相關(guān)設(shè)置 在ubuntu下,啟動(dòng)mongodb的腳本文件在/etc/init/mongo和/etc/init.d/mongo中可以找到,同時(shí),會(huì)把mongodb下的所有文件復(fù)制到/usr/bin目錄下。而主要的配置文件mongodb.conf則在/etc/mongodb.conf下,可以根據(jù)需要進(jìn)行一些修改,如下: 6) 驗(yàn)證安裝 為了驗(yàn)證安裝,只需要在客戶端嘗試連接就可以了,如下:  $ mongo  MongoDB shell version: 1.8. 1 connecting to: test >
創(chuàng)建Mongodb數(shù)據(jù)庫 由于Mongodb不是關(guān)系型數(shù)據(jù)庫文件,實(shí)際上,它并不存在傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的所謂“數(shù)據(jù)庫”的概念,但不用擔(dān)心,當(dāng)你第一次新增數(shù)據(jù)時(shí),mongodb就會(huì)以collection集合的形式進(jìn)行保存和新建,而不需要你手工去新建立。下面是例子: 1)列出當(dāng)前的數(shù)據(jù)庫  MongoDB shell version: 1.8. 1 connecting to: test > show dbs  admin 0.03125GB  local (empty) 可以使用show dbs 來列出當(dāng)前有多少個(gè)數(shù)據(jù)庫,上面看到的是有兩個(gè),分別是admin和local。 2) 定義新的數(shù)據(jù)庫名 我們通過使用“use new-databasename”的語法去使用一個(gè)新的數(shù)據(jù)庫,注意,即使你的數(shù)據(jù)庫還沒建立起來,依然可以這樣使用,因?yàn)閙ongodb會(huì)在真正插入了數(shù)據(jù)后,才會(huì)真正建立起來。 > use mkyongdb  switched to db mkyongdb > show dbs  admin 0.03125GB  local (empty) 注意,在use mkyongdb后,mkyongdb實(shí)際上還沒真正建立起來,只是表明目前是在使用mkyongdb了。 3)保存數(shù)據(jù) 定義一個(gè)collection,名為“users”,然后插入數(shù)據(jù),如下: > db.users. save( {username:"mkyong"} ) > db.users.find()  { "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" } > > show dbs  admin 0.03125GB  local (empty)  mkyongdb 0.03125GB 可以看到,用db.users.find()可以找出已插入的數(shù)據(jù)。這個(gè)時(shí)候,名為“users”的collection已經(jīng)建立起來了,同時(shí),數(shù)據(jù)庫mkyongdb也建立起來了。 修復(fù)mongodb數(shù)據(jù)庫 當(dāng)mongodb發(fā)生問題時(shí),就要修復(fù)其數(shù)據(jù)庫,比如遇到以下的信息: ************** old lock file: \data\db\mongod.lock. probably means unclean shutdown recommend removing file and running --repair
 see: http: //dochub. /core /repair for more information ************* Mon May 09 12: 37: 43 [initandlisten] exception in initAndListen std::exception: old lock file,  terminating  Mon May 09 12: 37: 43 dbexit:  Mon May 09 12: 37: 43 [initandlisten] shutdown: going to close listening sockets...  Mon May 09 12: 37: 43 [initandlisten] shutdown: going to flush diaglog...  Mon May 09 12: 37: 43 [initandlisten] shutdown: going to close sockets...  Mon May 09 12: 37: 43 [initandlisten] shutdown: waiting for fs preallocator...  Mon May 09 12: 37: 43 [initandlisten] shutdown: closing all files...  Mon May 09 12: 37: 43 closeAllFiles() finished  Mon May 09 12: 37: 43 dbexit: really exiting now 那么這個(gè)時(shí)候,可以采用如下方法去修復(fù)它:  找到\data\db\mongod.lock這個(gè)文件,刪除它  采用mongod –repair命令進(jìn)行修復(fù)  Mon May 09 12: 42: 57 [initandlisten] db version v1. 8.1, pdfile version 4.5 //......  Mon May 09 12: 42: 57 [initandlisten] shutdown: going to close listening sockets...  Mon May 09 12: 42: 57 [initandlisten] shutdown: going to flush diaglog...  Mon May 09 12: 42: 57 [initandlisten] shutdown: going to close sockets...  Mon May 09 12: 42: 57 [initandlisten] shutdown: waiting for fs preallocator...  Mon May 09 12: 42: 57 [initandlisten] shutdown: closing all files...  Mon May 09 12: 42: 57 closeAllFiles() finished  Mon May 09 12: 42: 57 [initandlisten] shutdown: removing fs lock...  Mon May 09 12: 42: 57 dbexit: really exiting now 小結(jié) 在本文中,簡單為大家介紹了Mongodb在widnows下和Linux下的安裝和一些基本操作,在下一篇教程中,將學(xué)習(xí)如何使用Java對(duì)Mongodb進(jìn)行操作,敬請(qǐng)期待。
|