PHP操作Mongodb之增刪改查篇
之前,我講解過PHP中mongodb擴充套件的安裝,及啟動,連結操作【忘記了?去看看吧!PHP操作Mongodb之一】。本文主要就是講在PHP中Mongodb的增加,查詢,修改及刪除資料的操作。
1、增加資料
語法格式:
$db->insert($array); //引數表示需要插入的資料
例如:我們插入一個id為1,名稱為PHP,年齡為25的資料。程式碼如下:
<?php
//連線資料庫
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//選擇資料庫
$db = $connnect->selectDB('mydb')->selectCollection("use r");
//整理需要插入的資料
$array = array();
$array['id'] = 1;
$array['name'] = 'php';
$array['age'] = 25;
//插入資料
$db->insert($array);
?>
這樣,就將一條資料插入到mydb的user集合裡了。當然,上面的$db->insert($array);也可以換成$db->save($array);。insert()和save()的區別在於:若存在主鍵,insert()不做操作,而save()則更改原來的內容為新內容。
2、查詢資料
語法格式:
$db->find(array('_id' => new MongoId($id))); //引數可以為空,那麼就查詢所有資料
例如,我們查詢資料庫中的所有資料,程式碼如下:
<?php
//連線資料庫
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//選擇資料庫
$db = $connnect->selectDB('mydb')->selectCollection("user");
//查詢資料
$cursor = $db->find();
$array = array();
while($cursor->hasNext()) {
$array[] = $cursor->getNext();
}
echo "<pre>";
print_r($array);
?>
執行結果如下:
可見資料已經取出來了。如只想取出一條資料。可以使用$db->findOne();,這時候,只會取出第一個文件的資料。
特定條件的查詢
例如,我們要查詢年紀大於25的成員的資訊,就在find()中寫條件,程式碼如下:
<?php
//連線資料庫
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//選擇資料庫
$db = $connnect->selectDB('mydb')->selectCollection("user");
//查詢條件
$cursor = $db->find(array('age' => array('$gt' => 25)));
$array = array();
while($cursor->hasNext()) {
$array[] = $cursor->getNext();
}
?>
需要注意的是'$gt',是單引號!
3、修改資料
語法格式:
$db->update(array('_id' => new MongoId($id)), $array); //第一個引數為指定的條件,第二個引數為要更新的物件
例如我們修改ID為537097b59067916c06000003的資料,程式碼如下:
<?php
//連線資料庫
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//選擇資料庫
$db = $connnect->selectDB('mydb')->selectCollection("user");
//需要修改的資料
$array = array();
$array['id'] = 1;
$array['name'] = 'java';
$array['age'] = 25;
$db->update(array('_id' => new MongoId('537097b59067916c06000003')), $array);
?>
這就ID為537097b59067916c06000003的資料進行了修改。
4、刪除資料
語法格式:
$db->remove(array('_id' => new MongoId($id)), array('justOne' => True)); //第一個引數為指定的條件,如果加了justOne的引數,則只刪除符合條件的一條記錄而已,其他不刪除
例如我們刪除ID為5370a05d4b628998570cdf6d的資料,程式碼如下:
<?php
//連線資料庫
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//選擇資料庫
$db = $connnect->selectDB('mydb')->selectCollection("user");
//需要刪除的資料
$db->remove(array('_id' => new MongoId('5370a05d4b628998570cdf6d')));
?>
這就ID為5370a05d4b628998570cdf6d的資料就被刪除了。