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