MongoDB PHP

在php中使用mongodb你必須使用 mongodb 的 php驅動。

MongoDB PHP在各平台上的安裝及驅動包下載請查看:PHP安裝MongoDB擴展驅動

如果你使用的是 PHP7,請參閱:PHP7 MongoDB 安裝與使用

確保連接及選擇一個數據庫

為了確保正確連接,你需要指定數據庫名,如果數據庫在mongoDB中不存在,mongoDB會自動創建

代碼片段如下:

<?php
$m = new MongoClient(); // 連接默認主機和端口為:mongodb://localhost:27017
$db = $m->test; // 獲取名稱為 "test" 的數據庫
?>

創建集合

創建集合的代碼片段如下:

<?php
$m = new MongoClient(); // 連接
$db = $m->test; // 獲取名稱為 "test" 的數據庫
$collection = $db->createCollection("runoob");
echo "集合創建成功";
?>

執行以上程序,輸出結果如下:

集合創建成功

插入文檔

在mongoDB中使用 insert() 方法插入文檔:

插入文檔代碼片段如下:

<?php
$m = new MongoClient();    // 連接到mongodb
$db = $m->test;            // 選擇一個數據庫
$collection = $db->runoob; // 選擇集合
$document = array( 
    "title" => "MongoDB", 
    "description" => "database", 
    "likes" => 100,
    "url" => "http://rb.wikimirror.xyz/mongodb/",
    "by", "菜鳥教程"
);
$collection->insert($document);
echo "數據插入成功";
?>

執行以上程序,輸出結果如下:

數據插入成功

然後我們在 mongo 客戶端使用 db.runoob.find().pretty(); 命令查看數據:


查找文檔

使用find() 方法來讀取集合中的文檔。

讀取使用文檔的代碼片段如下:

<?php
$m = new MongoClient();    // 連接到mongodb
$db = $m->test;            // 選擇一個數據庫
$collection = $db->runoob; // 選擇集合

$cursor = $collection->find();
// 迭代顯示文檔標題
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}
?>

執行以上程序,輸出結果如下:

MongoDB

更新文檔

使用 update() 方法來更新文檔。

以下實例將更新文檔中的標題為' MongoDB 教程', 代碼片段如下:

<pre>
<?php
$m = new MongoClient();    // 連接到mongodb
$db = $m->test;            // 選擇一個數據庫
$collection = $db->runoob; // 選擇集合
// 更新文檔
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));
// 顯示更新後的文檔
$cursor = $collection->find();
// 循環顯示文檔標題
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}
?>

執行以上程序,輸出結果如下:

MongoDB 教程

然後我們在 mongo 客戶端使用 db.runoob.find().pretty(); 命令查看數據:


刪除文檔

使用 remove() 方法來刪除文檔。

以下實例中我們將移除 'title' 為 'MongoDB 教程' 的一條數據記錄。, 代碼片段如下:

<?php
$m = new MongoClient();    // 連接到mongodb
$db = $m->test;            // 選擇一個數據庫
$collection = $db->runoob; // 選擇集合
   
// 移除文檔
$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));

// 顯示可用文檔數據
$cursor = $collection->find();
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}
?>

除了以上實例外,在php中你還可以使用findOne(), save(), limit(), skip(), sort()等方法來操作Mongodb數據庫。

更多的操作方法可以參考 Mongodb 核心類:http://php.net/manual/zh/mongo.core.php