介紹:
mongodb是一個基于分布式檔案存儲的資料庫。高性能,開源,無模式的文檔型資料庫,為web應用提供可擴充的高性能資料存儲,是目前nosql資料庫中比較熱門的一種,由c++語言編寫。
mongodb是一個介于關系資料庫和非關系資料庫之間的産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似json的bson格式,是以可以存儲比較複雜的資料類型。mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
預設端口:27017
特點:
高性能、易部署、易使用,存儲資料非常友善。主要功能特性有:
面向集合存儲,易存儲對象類型的資料。
模式自由。
支援動态查詢。
支援完全索引,包含内部對象。
支援查詢。
支援複制和故障恢複。
使用高效的二進制資料存儲,包括大型對象(如視訊等)。
自動處理碎片,以支援雲計算層次的擴充性
支援python,php,ruby,java,c,c#,javascript,perl及c++語言的驅動程式,社群中也提供了對erlang及.net等平台的驅動程式。
檔案存儲格式為bson(一種json的擴充)。
可通過網絡通路。
功能:
面向集合的存儲:适合存儲對象及json形式的資料。
動态查詢:mongo支援豐富的查詢表達式。查詢指令使用json形式的标記,可輕易查詢文檔中内嵌的對象及數組。
完整的索引支援:包括文檔内嵌對象及數組。mongo的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃。
查詢監視:mongo包含一個監視工具用于分析資料庫操作的性能。
複制及自動故障轉移:mongo資料庫支援伺服器之間的資料複制,支援主-從模式及伺服器之間的互相複制。複制的主要目标是提供備援及自動故障轉移。
高效的傳統存儲方式:支援二進制資料及大型對象(如照片或圖檔)
自動分片以支援雲級别的伸縮性:自動分片功能支援水準的資料庫叢集,可動态添加額外的機器。
1.安裝mongodb
下載下傳:http://www.mongodb.org/downloads
1
2
3
<code>mongodb-linux-x86_64-2.4.5.</code><code>tar</code><code>.gz</code>
<code>tar</code> <code>zxvf mongodb-linux-x86_64-2.4.5</code>
<code>mv</code> <code>mongodb-linux-x86_64-2.4.5</code><code>/usr/local/mongodb</code>
2.啟動mongodb
4
5
6
<code>mkdir</code> <code>/data/db</code>
<code>mkdir</code> <code>/data/log</code>
<code>cd</code> <code>/usr/local/mongodb/bin</code>
<code> </code><code>.</code><code>/mongod</code> <code>--dbpath=</code><code>/data/db/</code> <code>--logpath=</code><code>/data/log/test</code><code>.log --fork </code><code>#啟動,dbpath指定資料庫位置,logpath指定日志位置</code>
<code>netstat</code> <code>-tuplna | </code><code>grep</code> <code>27017 </code><code>#說明mongodb已經啟動</code>
<code>tcp 0 0 0.0.0.0:27017 0.0.0.0:* listen 1695/.</code><code>/mongod</code>
3.添加php擴充
下載下傳mongodb用戶端支援包:http://pecl.php.net/package/mongo-1.4.2.tgz
7
<code>tar</code> <code>zxvf mongo-1.4.2.tgz</code>
<code>cd</code> <code>mongo-1.4.2</code>
<code>/usr/local/php/bin/phpize</code>
<code>.</code><code>/configure--with-php-config</code><code>=</code><code>/usr/local/php/bin/php-config</code>
<code>make</code> <code>&& </code><code>make</code> <code>install</code>
<code>vi</code> <code>/etc/php</code><code>.ini</code>
<code>extension=mongo.so </code><code>#添加mongo子產品</code>
phpinfo()可以看到mongo擴充!
4.測試php連接配接mongodb
8
9
10
11
12
13
<code>.</code><code>/mongo</code> <code>#登陸mongodb資料庫</code>
<code>killall -9 mongod </code><code>#關閉資料庫</code>
<code>vi</code> <code>/var/www/html/index</code><code>.php</code>
<code><?php</code>
<code>$m = newmongo(</code><code>'192.168.0.202:27017'</code><code>);</code>
<code>$a =$m->abc; </code><code>#定義連接配接庫</code>
<code>if</code><code>($a){</code>
<code> </code><code>echo</code> <code>"success"</code><code>;</code>
<code>}</code>
<code>else</code><code>{</code>
<code> </code><code>echo</code> <code>"wrong"</code><code>;</code>
<code>?></code>
5.mongodb資料操作指令
1、help檢視指令提示
2、切換/建立資料庫
use dbname;
當建立一個集合(table)的時候會自動建立目前資料庫
3、查詢所有資料庫
show dbs;
4、删除目前使用資料庫
db.dropdatabase();
5、從指定主機上克隆資料庫
db.clonedatabase(“127.0.0.1”); #将指定機器上的資料庫的資料克隆到目前資料庫
6、從指定的機器上複制指定資料庫資料到某個資料庫
db.copydatabase("mydb", "temp","127.0.0.1"); #将本機的mydb的資料複制到temp資料庫中
7、修複目前資料庫
db.repairdatabase();
8、檢視目前使用的資料庫
db.getname();
db;
db和getname方法是一樣的效果,都可以查詢目前使用的資料庫
9、顯示目前db狀态
db.stats();
10、目前db版本
db.version();
11、檢視目前db的連結機器位址
db.getmongo();
使用者相關
1、添加一個使用者
db.adduser("name");
db.adduser("username", "pwd123", true); #添加使用者、設定密碼、是否隻讀
2、資料庫認證、安全模式
db.auth("username","123123");
3、顯示目前所有使用者
show users;
4、删除使用者
db.removeuser("username");
showcollections : #列出目前資料庫的所有文檔。