程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 【轉】PHP操作MongoDB【NoSQL】

【轉】PHP操作MongoDB【NoSQL】

編輯:關於PHP編程

原文:http://blog.sina.com.cn/s/blog_4b67d3240101519b.html

一、MongoDB簡介

MongoDB (名稱來自"humongous") 是一個可擴展的、高性能、開源、模式自由、面向文檔的數據庫,集文檔數據庫、鍵值對存儲和關系型數據庫的優點於一身。官方站點:http://www.mongodb.org/,MongoDB特點:

•面向文檔存儲(類JSON數據模式簡單而強大)
•動態查詢
•全索引支持,擴展到內部對象和內嵌數組
•查詢記錄分析
•快速,就地更新
•高效存儲二進制大對象 (比如照片和視頻)
•復制和故障切換支持
•Auto-Sharding自動分片支持雲級擴展性
•MapReduce 支持復雜聚合
•商業支持,培訓和咨詢
二、安裝MongoDB

安裝MongoDB非常的簡單,僅需下載壓縮包解壓運行命令即可,下載地址:http://www.mongodb.org/downloads,本文為windows平台,MongoDB運行命令:>bin/mongod。提示:首先要創建存儲數據的文件夾,MongoDB 默認存儲數據目錄為 /data/db/ (或者 c:\data\db),當然你也可以修改成不同目錄,只需要指定 --dbpath 參數,eg:
>bin/mongod --dbpath=d:\mgdata\db
三、安裝MongoDB PHP擴展
根據自己的PHP版本下載PHP擴展:http://github.com/mongodb/mongo-php-driver/downloads,提示:
1、VC6適合Apache、VC9適合IIS;
2、Thread safe適合PHP以模塊運行方式、Non-thread safe適合CGI運行方式。
修改php.ini,加入:extension=php_mongo.dll,重啟Web服務器。
四、PHP示例
1、連接Mongo服務器
view plaincopy to clipboardprint?
<?php
//連接localhost:27017
$conn = new Mongo();
//連接遠程主機默認端口
$conn = new Mongo('test.com');
//連接遠程主機22011端口
$conn = new Mongo('test.com:22011');
//MongoDB有用戶名密碼
$conn = new Mongo("mongodb://${username}:${password}@localhost")
//MongoDB有用戶名密碼並指定數據庫blog
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
//多個服務器
$conn = new Mongo("mongodb://localhost:27017,localhost:27018");
?>
<?php
//連接localhost:27017
$conn = new Mongo();
//連接遠程主機默認端口
$conn = new Mongo('test.com');
//連接遠程主機22011端口
$conn = new Mongo('test.com:22011');
//MongoDB有用戶名密碼
$conn = new Mongo("mongodb://${username}:${password}@localhost")
//MongoDB有用戶名密碼並指定數據庫blog
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
//多個服務器
$conn = new Mongo("mongodb://localhost:27017,localhost:27018");
?>
2、指定數據庫和數據集名(表名)
view plaincopy to clipboardprint?
<?php
//選擇數據庫blog
$db = $conn->blog;
//制定結果集(表名:users)

$collection = $db->users;
?>
<?php
//選擇數據庫blog
$db = $conn->blog;
//制定結果集(表名:users)
$collection = $db->users;
?>
3、CRUD
view plaincopy to clipboardprint?
<?php
//新增
$user = array('name' => 'caleng', 'email' =>'[email protected]');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "[email protected]"));
$collection->update(array("name" => "caleng"), $newdata);
//刪除
$collection->remove(array('name'=>'caleng'), array("justOne" => true));
//查找
$cursor = $collection->find();
var_dump($cursor);
//查找一條
$user = $collection->findOne(array('name' => 'caleng'), array('email'));
var_dump($user);
?>
<?php
//新增
$user = array('name' => 'caleng', 'email' =>'[email protected]');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "[email protected]"));
$collection->update(array("name" => "caleng"), $newdata);
//刪除
$collection->remove(array('name'=>'caleng'), array("justOne" => true));
//查找
$cursor = $collection->find();
var_dump($cursor);
//查找一條
$user = $collection->findOne(array('name' => 'caleng'), array('email'));
var_dump($user);
?>
4、關閉連接
view plaincopy to clipboardprint?
<?php
$conn->close();
?> 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved