PHP 擴(kuò)展mongon.mod.dll下載http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows
然后php.ini添加 extension=php_mongo.dll
最后phpinfo() 查找到
表標(biāo)PHP已經(jīng)自帶了mongo功能,你就可以操作下面的代碼(但是你必須有安裝mongodb服務(wù)器)
一、連接數(shù)據(jù)庫
使用下面的代碼創(chuàng)建一個(gè)數(shù)據(jù)庫鏈接
如圖:
上圖說有一個(gè)數(shù)據(jù)庫名字叫l(wèi)ocal,總大小1個(gè)字節(jié),他是空的??匆妎k表示運(yùn)行成功。
現(xiàn)在你可以使用$connection鏈接來操作數(shù)據(jù)庫了
選擇數(shù)據(jù)庫
使用下面的代碼來選擇一個(gè)數(shù)據(jù)庫
這里的數(shù)據(jù)庫并不一定是一個(gè)已經(jīng)存在的數(shù)據(jù)庫,如果所選擇的數(shù)據(jù)庫不存在,則會(huì)新建一個(gè)數(shù)據(jù)庫,所以在選擇數(shù)據(jù)庫的時(shí)候,注意一定要填上正確的數(shù)據(jù)庫名
如果拼寫錯(cuò)誤的話,很有可能會(huì)新建一個(gè)數(shù)據(jù)庫
獲取一個(gè)集合
獲取一個(gè)集合跟選擇數(shù)據(jù)庫擁有相同的語法格式
插入一個(gè)文檔
多維數(shù)組是可以被儲(chǔ)存到數(shù)據(jù)庫中的基本單元
一個(gè)隨機(jī)的文檔可能是這樣
注意:你可以嵌套數(shù)組與對(duì)象,對(duì)象與文檔在mongodb中幾乎是一樣的,你可以使用$doc調(diào)用一個(gè)文檔或?qū)ο?,但是info字段總是一個(gè)對(duì)象而不是一個(gè)文檔,
本約束適用于所有文檔
使用MongoCollection::insert()插入一個(gè)文檔
mongodb 的 insert()、save() ,區(qū)別主要是:若存在主鍵,insert() 不做操作,而save() 則更改原來的內(nèi)容為新內(nèi)容。
存在數(shù)據(jù): { _id : 1, " name " : " n1 " }
insert({ _id : 1, " name " : " n2 " }) 會(huì)提示錯(cuò)誤
save({ _id : 1, " name " : " n2 " }) 會(huì)把 n1 改為 n2 。
使用MongoCollection::findOne()查詢文檔
為了證明上面那段代碼的數(shù)據(jù)已經(jīng)插入到數(shù)據(jù)庫里了,我們進(jìn)行簡(jiǎn)單的 findOne()操作以得到集合中的第一個(gè)文檔數(shù)據(jù),這種方法只返回一個(gè)文檔數(shù)據(jù),
這種方法適用于在你的查詢語句的時(shí)候只匹配一個(gè)文檔或者你只關(guān)心第一條數(shù)據(jù)
你會(huì)看到下列結(jié)果
添加更多文檔
為了做一些更有趣的事情,我們添加更多簡(jiǎn)單的文檔到集合中,這些文檔如下
注意:我們可以插入不同的字段在同一字符集中,在這方面意味著MongoDB擁有非常自由的儲(chǔ)存模式
在一個(gè)集合中計(jì)算文檔的數(shù)量
現(xiàn)在我們插入了101個(gè)文檔(我們用循環(huán)插入了100個(gè),之前還插入了一個(gè)),我們可以使用count()來看看我們的數(shù)據(jù)是不是都被插入進(jìn)去了
MongoCollection::count() 也可以查詢字段數(shù)據(jù)
使用游標(biāo)得到集合中的所有文檔
為了得到集合中的所有文檔,我們可以使用 MongoCollection::find()方法,find()方法返回一個(gè) MongoCursor對(duì)象,可以讓我們重復(fù)得到查詢所匹配的的文檔
為查詢規(guī)定一個(gè)標(biāo)準(zhǔn)
我們可以通過find()方法得到集合中的文檔子集,例如,我們要查詢出集合中i字段為71的文檔,我們可以使用下列方法
為查詢?cè)O(shè)定一個(gè)范圍
我們可以通過find()創(chuàng)建一個(gè)查詢語句以得集合中的一個(gè)子集,例如如果我們得到所有”i”>50的文檔,我們可以使用如下代碼
我們同樣可以得到20 < i <= 30之間的數(shù)據(jù)
我們非常容易漏掉$美元符號(hào),你也可以選擇你自定義的符號(hào)來代替美元符號(hào),選擇一個(gè)不會(huì)在你的建里面出現(xiàn)的符號(hào)例如”:”,在php.ini中加上這么一句話
創(chuàng)建一個(gè)索引
MongoDB支持索引,并且可以很容易的加到一個(gè)集合中,你只要指定某個(gè)字段為索引就行了,并且還可以指定 正序索引(1)與 倒序索引(-1)
下面的代碼為I創(chuàng)建了索引
一個(gè)完整的簡(jiǎn)單例子
這個(gè)例子展示了如何鏈接mongodb數(shù)據(jù)庫,如何選擇數(shù)據(jù)庫,如何插入數(shù)據(jù),如何查詢數(shù)據(jù),以及關(guān)閉數(shù)據(jù)庫鏈接
// 選擇一個(gè)數(shù)據(jù)庫
$db = $m->comedy;
$collection = $db->cartoons;
//添加一個(gè)元素
$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($obj);
//修改
$newdata = array('$set' => array("title" => "Calvin and Hobbes"));
$collection->update(array("author" => "caleng"), $newdata);
//刪除
$collection->remove(array('author'=>'caleng'), array("justOne" => true));
//添加另一個(gè)元素,使用不同的格式
$obj = array( "title" => "XKCD", "online" => true );
$collection->insert($obj);
//查詢所有的集合
$cursor = $collection->find();
//重復(fù)顯示結(jié)果
foreach ($cursor as $obj) {
echo $obj["title"] . "/n";
}
// 關(guān)閉鏈接
$m->close();
?>
新聞熱點(diǎn)
疑難解答