要將MongoDB與PHP一起使用,您需要使用MongoDB PHP驅(qū)動(dòng)程序。從url下載PHP驅(qū)動(dòng)程序中下載驅(qū)動(dòng)程序。確保下載最新版本?,F(xiàn)在解壓縮存檔,并將php_mongo.dll放入您的PHP擴(kuò)展目錄(默認(rèn)為“ ext”),并將以下行添加到您的php.ini文件中-
extension = php_mongo.dll
要建立連接,您需要指定數(shù)據(jù)庫名稱,如果該數(shù)據(jù)庫不存在,則MongoDB會(huì)自動(dòng)創(chuàng)建它。
以下是連接到數(shù)據(jù)庫的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接到數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "選擇數(shù)據(jù)庫 mydb"; ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
連接數(shù)據(jù)庫成功,數(shù)據(jù)庫mydb被選中
以下是創(chuàng)建集合的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接到數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "Database mydb selected"; $collection = $db->createCollection("mycol"); echo "集合創(chuàng)建成功"; ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
已成功連接到數(shù)據(jù)庫 集合創(chuàng)建成功
要將文檔插入MongoDB,請(qǐng)使用
方法。insert()
以下是插入文檔的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接到數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "已選擇數(shù)據(jù)庫mydb"; $collection = $db->mycol; echo "已成功選擇集合"; $document = array( "title" => "MongoDB", "description" => "database", "likes" => 100, "url" => "/mongodb/", "by" => "(cainiaoplus.com)" ); $collection->insert($document); echo "文檔插入成功"; ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
成功連接到數(shù)據(jù)庫 已選擇數(shù)據(jù)庫mydb 已成功選擇集合 文檔插入成功
要從集合中選擇所有文檔,請(qǐng)使用find()
方法。
以下是選擇所有文檔的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "已選擇數(shù)據(jù)庫mydb"; $collection = $db->mycol; echo "已成功選擇集合"; $cursor = $collection->find(); // 迭代光標(biāo)以顯示文檔標(biāo)題 foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
成功連接數(shù)據(jù)庫 已選擇數(shù)據(jù)庫mydb 已成功選擇集合{"title": "MongoDB"}
要更新文檔,您需要使用 update()
方法。
在以下示例中,我們將插入文檔的標(biāo)題更新為MongoDB Tutorial
。以下是更新文檔的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接到數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "選擇數(shù)據(jù)庫 mydb"; $collection = $db->mycol; echo "Collection selected succsessfully"; // 現(xiàn)在更新文件 $collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB Tutorial"))); echo "Document updated successfully"; // 現(xiàn)在顯示更新的文檔 $cursor = $collection->find(); // 迭代光標(biāo)以顯示文檔標(biāo)題 echo "Updated document"; foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
成功連接到數(shù)據(jù)庫 選擇數(shù)據(jù)庫 mydb已成功選擇集合 文檔更新成功 Updated document { "title": "MongoDB Tutorial"}
要?jiǎng)h除文檔,您需要使用 remove()
方法。
在以下示例中,我們將刪除標(biāo)題為的文檔MongoDB Tutorial
。以下是刪除文檔的代碼片段-
<?php // 連接到mongodb $m = new MongoClient(); echo "成功連接數(shù)據(jù)庫"; // 選擇一個(gè)數(shù)據(jù)庫 $db = $m->mydb; echo "已選擇數(shù)據(jù)庫mydb"; $collection = $db->mycol; echo "已成功選擇集合"; // 現(xiàn)在刪除文檔 $collection->remove(array("title"=>"MongoDB Tutorial"),false); echo "成功刪除文檔"; // 現(xiàn)在顯示可用的文檔 $cursor = $collection->find(); // 迭代光標(biāo)以顯示文檔標(biāo)題 echo "Updated document"; foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?>
執(zhí)行程序時(shí),將產(chǎn)生以下結(jié)果-
成功連接數(shù)據(jù)庫 已選擇數(shù)據(jù)庫mydb 集合選擇成功 成功刪除文檔
在上面的示例中,第二個(gè)參數(shù)是 boolean 類型,用于 remove ()方法的 justOne 字段。
其余的 MongoDB 方法 findOne ()、 save ()、 limit ()、 skip ()、 sort ()等的工作原理與上面解釋的相同。