php對mongodb的擴(kuò)展(初識如故)
由于mongodb的相關(guān)中文資料較少,之后若有機(jī)會繼續(xù)為大家分享。希望這點(diǎn)小分享能給大家?guī)硎斋@,言歸正傳請往下看。
為什么說“初識如故”呢,因?yàn)閙ongodb的數(shù)據(jù)存儲格式是一種由于MongoDB的文檔結(jié)構(gòu)為BJSON格式(BJSON全稱:BinaryJSON),而BJSON格式本身就支持保存二進(jìn)制格式的數(shù)據(jù),因此可以把文件的二進(jìn)制格式的數(shù)據(jù)直接保存到MongoDB的文檔結(jié)構(gòu)中。
MongoDB是由(database)、集合(collection)、文檔對象(document)三個層次組成。
和關(guān)系型數(shù)據(jù)庫的對應(yīng)關(guān)系:
關(guān)系型數(shù)據(jù)庫 MongoDB數(shù)據(jù)庫
Database database
table collection
Row document
在MongoDB中可以建立索引,collection中有一個默認(rèn)的隱藏字段_id,該字段。
安裝使用
windows下安裝mongodb和簡單使用mongodb命令
一、下載,解壓文件
到官方下載合適的版本 http://www.mongodb.org/downloads
例如:http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.2.1.zip
解壓后放到對應(yīng)的盤符下面,例如:D:\mongodb
二、安裝
1.把bin目錄加入到環(huán)境變量中 D:\mongodb\bin
2.在D:\mongodb下創(chuàng)建data文件夾放數(shù)據(jù)用,還要在data文件下創(chuàng)建一個db文件夾,沒有db文件夾mongodb不能正常啟動
3.簡單啟動mongodb方法:
進(jìn)入到bin目錄下
C:\Documents and Settings\me>D:
D:\>cd mongodb/bin
D:\mongodb\bin>mongod –dbpath D:/mongodb/data
D:\mongodb\bin>mongod –dbpath D:/mongodb/data
顯示如下內(nèi)容:
Sun Jan 16 14:56:03 MongoDB starting : pid=860 port=27017 dbpath=D:/mongodb/d
ata 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Sun Jan 16 14:56:03 db version v2.2.1, pdfile version 4.5
Sun Jan 16 14:56:03 git version: 0eb017e9b2828155a67c5612183337b89e12e291
Sun Jan 16 14:56:03 sys info: windows (5, 1, 2600, 2, ‘Service Pack 3′) BOOST_LI
B_VERSION=1_35
Sun Jan 16 14:56:03 [initandlisten] waiting for connections on port 27017
Sun Jan 16 14:56:03 [websvr] web admin interface listening on port 28017
注:必須先建立data文件夾和到bin目錄下執(zhí)行。mongoDB 服務(wù)端的默認(rèn)連接端口是 27017
2.添加到注冊表作為Windows服務(wù)啟動,和mysql一樣啟動Windows時會自動啟動服務(wù),到bin目錄下執(zhí)行
D:\mongodb\bin>mongod --logpath D:\mongodb\log\log1.log --logappend
--dbpath D:\mongodb\data --directoryperdb --serviceName mongodb –install
完成后輸出下面內(nèi)容(360等殺毒軟件會阻止,需要允許通過)
all output going to: D:\mongodb\logs\log1.log
Creating service mongodb
Service creation successful.
Service can be started from the command line via ‘net start “mongodb″‘.
D:\mongodb\bin>
其中:log\log1.log日志是以追加的方式輸出的,–serviceName mongodb是服務(wù)名稱
啟動MongoDB:net start mongodb
停止MongoDB:net stop mongodb
注:添加到注冊表后重啟電腦在服務(wù)項(xiàng)里面可以看到已經(jīng)啟動,但服務(wù)仍然沒有啟動,重啟服務(wù)發(fā)現(xiàn)給360安全衛(wèi)士阻止了需要再次確定才能啟動。
3.mongodb的簡單使用命令,到bin命令下執(zhí)行mongo.exe進(jìn)入管理界面,默認(rèn)是進(jìn)入到test帳號。
D:\mongodb\bin>mongo.exe
MongoDB shell version: 2.2.1
connecting to: test
> show dbs;
admin
local
> help;查看命令提示
三、接下來,就是跟所有數(shù)據(jù)庫一樣的操作要加一個用戶的防問權(quán)限
但是些時創(chuàng)建的用戶沒有查看集合的權(quán)限,怎么辦呢!其實(shí)也好辦,我已經(jīng)替大家頭疼過了,所以能夠堅(jiān)持用心看到這里的同學(xué)不會再頭疼了。
在剛才進(jìn)入的mongo.exe管理界面執(zhí)行以下命令
>use admin
>db.auth("sa","sa")
>use web
>show collections
這回就暢通無阻了吧。
四、MongoDB創(chuàng)建數(shù)據(jù)庫完全可以使用use 如下: use web; 這樣就創(chuàng)建了一個數(shù)據(jù)庫
切換到web數(shù)據(jù)庫,如果不存在則在插入數(shù)據(jù)后會自動創(chuàng)建一個,在data目錄下可以看到新增了一個web的文件夾
> use web;
switched to db web
> db.my.save({a:10});向collection my 中保存一條信息,如果不存在collection會自動創(chuàng)建一個
> db.my.find();檢索所有記錄
{ “_id” : ObjectId(“4d32c9204e6100000000691e”), “a” : 10 }
> show collections;
my
system.indexes
>exit;退出
Mongodb的安裝及用戶權(quán)限設(shè)置已到此結(jié)束。
下面介紹幾種圖形話管理工具
1.使用圖形話管理工具“MongoVUE 0.9.7.2”
進(jìn)入之后可以看到
2.一種比較推薦的管理軟件是“rockmongo”
需要php運(yùn)行環(huán)境的支持,本人更喜歡它,因?yàn)閜hp程序員有著現(xiàn)成的環(huán)境不用白不用,呵呵。
(1).下載一個rockmongo,解壓后放在web目錄下 下載地址:http://rockmongo.com/downloads
如果你沒有php的運(yùn)行環(huán)境的話,但又想使用rockmongo的話,可以在下載地址中集成包下載。
(2).下載一個php對mongodb的支持 php_mongo.dll 下載地址:https://github.com/mongodb/mongo-php-driver/downloads
(3).在php.ini中加入這行代碼 extension=php_mongo.dll 然后重啟apache,查看php_info
表示已經(jīng)安裝成功
(4).在瀏覽器中輸入 rockmongo 的地址,出現(xiàn)登錄框,登錄就可以了。默認(rèn)的用戶是:admin 密碼:admin
還有很多種其他工具,大家可以慢慢探索。
相關(guān)文章
JavaScript 組件之旅(三):用 Ant 構(gòu)建組件
我們走到哪兒了?前兩期思考了太多東西,你是否已有倦意?別擔(dān)心,本期的話題很輕松,你只需要簡單了解一些語法,寫幾行配置,就能驅(qū)使系統(tǒng)按你預(yù)設(shè)的方式自動完成一些工作。2009-10-10Easyui form combobox省市區(qū)三級聯(lián)動
這篇文章主要介紹了Easyui form combobox省市區(qū)三級聯(lián)動 的相關(guān)資料,需要的朋友可以參考下2016-01-01js設(shè)置function參數(shù)默認(rèn)值(適合沒有傳參情況)
div+css模擬js信息框的類庫時遇到一個問題當(dāng)沒有傳遞參數(shù)過去時自動使用提示信息作為窗口標(biāo)題,具體的實(shí)現(xiàn)如下2014-02-02JSChart輕量級圖形報表工具(內(nèi)置函數(shù)中文參考)
JSChart是一個輕量級的在線圖表生成工具,本身十分小巧,簡單易用,相對來講功能也不是特別強(qiáng)大,但是對于一些要求不高的應(yīng)用來講已經(jīng)夠用了,最近兩天在做一個監(jiān)控系統(tǒng),想到了它。2010-10-10JavaScript中如何在一個循環(huán)中等待示例代碼詳解
這篇文章主要介紹了在JavaScript中如何在一個循環(huán)中等待(附代碼示例),下面是如何使用for..of 循環(huán)來迭代一個數(shù)組并在循環(huán)內(nèi)等待,需要的朋友可以參考下2022-08-08JavaScript sort數(shù)組排序方法和自我實(shí)現(xiàn)排序方法小結(jié)
這篇文章主要介紹了JavaScript sort數(shù)組排序方法和自我實(shí)現(xiàn)排序方法小結(jié)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06