MongoDB 作為流行的 NoSQL 資料庫,與 PHP 搭配使用可靈活處理非結構化資料。本文整理從連線建立到增刪改查的基礎操作範例,幫助快速上手。
// 連線本機預設埠 27017
$conn = new Mongo();
// 連線遠端主機預設埠
$conn = new Mongo('test.com');
// 指定遠端埠號
$conn = new Mongo('test.com:22011');
// 帳密驗證
$conn = new Mongo("mongodb://${username}:${password}@localhost");
// 帳密驗證並指定資料庫
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
// 多伺服器叢集連線
$conn = new Mongo("mongodb://localhost:27017,localhost:27018");
// 選擇 blog 資料庫
$db = $conn->blog;
// 指定 users 集合(對應關聯式資料庫的表)
$collection = $db->users;
$user = array('name' => 'caleng', 'email' => 'admin#admin.com');
$collection->insert($user);
$newdata = array('$set' => array("email" => "test@test.com"));
$collection->update(array("name" => "caleng"), $newdata);
使用 $set 運算子可局部更新欄位,避免整份文件被覆寫。
// 刪除符合條件的單筆文件
$collection->remove(array('name'=>'caleng'), array("justOne" => true));
// 查詢所有,回傳游標
$cursor = $collection->find();
var_dump($cursor);
// 查詢單筆,僅回傳 email 欄位
$user = $collection->findOne(array('name' => 'caleng'), array('email'));
var_dump($user);
$conn->close();
良好的習慣是在腳本結束前顯式關閉連線,釋放資源。