PHP對(duì)MongoDB[NoSQL]數(shù)據(jù)庫(kù)的操作
一、MongoDB簡(jiǎn)介
MongoDB (名稱來(lái)自"humongous") 是一個(gè)可擴(kuò)展的、高性能、開源、模式自由、面向文檔的數(shù)據(jù)庫(kù),集文檔數(shù)據(jù)庫(kù)、鍵值對(duì)存儲(chǔ)和關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)于一身。官方站點(diǎn):http://www.mongodb.org/,MongoDB特點(diǎn):
•面向文檔存儲(chǔ)(類JSON數(shù)據(jù)模式簡(jiǎn)單而強(qiáng)大)
•動(dòng)態(tài)查詢
•全索引支持,擴(kuò)展到內(nèi)部對(duì)象和內(nèi)嵌數(shù)組
•查詢記錄分析
•快速,就地更新
•高效存儲(chǔ)二進(jìn)制大對(duì)象 (比如照片和視頻)
•復(fù)制和故障切換支持
•Auto-Sharding自動(dòng)分片支持云級(jí)擴(kuò)展性
•MapReduce 支持復(fù)雜聚合
•商業(yè)支持,培訓(xùn)和咨詢
二、安裝MongoDB
安裝MongoDB非常的簡(jiǎn)單,僅需下載壓縮包解壓運(yùn)行命令即可,下載地址:http://www.mongodb.org/downloads,本文為windows平臺(tái),MongoDB運(yùn)行命令:>bin/mongod。提示:首先要?jiǎng)?chuàng)建存儲(chǔ)數(shù)據(jù)的文件夾,MongoDB 默認(rèn)存儲(chǔ)數(shù)據(jù)目錄為 /data/db/ (或者 c:\data\db),當(dāng)然你也可以修改成不同目錄,只需要指定 --dbpath 參數(shù),eg:
>bin/mongod --dbpath=d:\mgdata\db
三、安裝MongoDB PHP擴(kuò)展
根據(jù)自己的PHP版本下載PHP擴(kuò)展:http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows,提示:
1、VC6適合Apache、VC9適合IIS;
2、Thread safe適合PHP以模塊運(yùn)行方式、Non-thread safe適合CGI運(yùn)行方式。
修改php.ini,加入:extension=php_mongo.dll,重啟Web服務(wù)器。
四、PHP示例
1、連接Mongo服務(wù)器
<?php
//連接localhost:27017
$conn = new Mongo();
//連接遠(yuǎn)程主機(jī)默認(rèn)端口
$conn = new Mongo('test.com');
//連接遠(yuǎn)程主機(jī)22011端口
$conn = new Mongo('test.com:22011');
//MongoDB有用戶名密碼
$conn = new Mongo("mongodb://${username}:${password}@localhost");
//MongoDB有用戶名密碼并指定數(shù)據(jù)庫(kù)blog
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
//多個(gè)服務(wù)器
$conn = new Mongo("mongodb://localhost:27017,localhost:27018");
?>
2、指定數(shù)據(jù)庫(kù)和數(shù)據(jù)集名(表名)
<?php
//選擇數(shù)據(jù)庫(kù)blog
$db = $conn->blog;
//制定結(jié)果集(表名:users)
$collection = $db->users;
?>
3、CRUD
<?php
//新增
$user = array('name' => 'caleng', 'email' => 'admin@admin.com');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "test@test.com"));
$collection->update(array("name" => "caleng"), $newdata);
//刪除
$collection->remove(array('name'=>'caleng'), array("justOne" => true));
//查找
$cursor = $collection->find();
var_dump($cursor);
//查找一條
$user = $collection->findOne(array('name' => 'caleng'), array('email'));
var_dump($user);
?>
4、關(guān)閉連接
<?php
$conn->close();
?>
相關(guān)文章
php阿拉伯?dāng)?shù)字轉(zhuǎn)中文人民幣大寫
這篇文章主要介紹了php阿拉伯?dāng)?shù)字轉(zhuǎn)中文大寫金額,分享了兩種實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2015-12-12php操作redis數(shù)據(jù)庫(kù)常見方法實(shí)例總結(jié)
這篇文章主要介紹了php操作redis數(shù)據(jù)庫(kù)常見方法,結(jié)合實(shí)例形式總結(jié)分析了PHP操作redis數(shù)據(jù)庫(kù)的基本安裝、連接、字符串、哈希表、列表、集合等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02『PHP』PHP截?cái)嗪瘮?shù)mb_substr()使用介紹
截?cái)辔恼聵?biāo)題,控制在15個(gè)文字,接下來(lái)為大家講解下如何實(shí)現(xiàn)這個(gè)需求,感興趣的朋友可以參考下哈2013-04-04PHP中的閉包function()?use()?{}使用場(chǎng)景和技巧
由于存在函數(shù)內(nèi)部不能訪問全局作用的,所以就需要一種可以引入上一級(jí)作用域的語(yǔ)法結(jié)構(gòu),可以通過use使用函數(shù)聲明時(shí)所在作用域的變量的值。php的閉包可能不常用,但是在某些場(chǎng)合之下還是可以考慮用php的閉包來(lái)實(shí)現(xiàn)某些功能的。2022-12-12php+mysql開發(fā)的最簡(jiǎn)單在線題庫(kù)(在線做題系統(tǒng))完整案例
這篇文章主要介紹了php+mysql開發(fā)的最簡(jiǎn)單在線題庫(kù)(在線做題系統(tǒng))案例,結(jié)合完整實(shí)例形式分析了PHP結(jié)合MySQL數(shù)據(jù)庫(kù)查詢、判斷實(shí)現(xiàn)的在線題庫(kù)功能相關(guān)操作技巧,需要的朋友可以參考下2019-03-03