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

PHP操作MongoDB數據庫

編輯:關於PHP編程

PHP操作MongoDB數據庫


 

 

一、MongoDB簡介

MongoDB (名稱來自”humongous”) 是一個可擴展的、高性能、開源、模式自由、面向文檔的數據庫,集文檔數據庫、鍵值對存儲和關系型數據庫的優點於一身。

 

MongoDB特點:

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

 

二、安裝MongoDB

安裝MongoDB非常的簡單,僅需下載壓縮包解壓運行命令即可

下載地址: https://www.mongodb.org/downloads

本文為windows平台,MongoDB運行命令:>bin/mongod

提示:首先要創建存儲數據的文件夾,MongoDB 默認存儲數據目錄為 /data/db/ (或者 c:datadb),當然你也可以修改成不同目錄,只需要指定 –dbpath 參數,

示例:
>bin/mongod –dbpath=d:mgdatadb

更多請參看我的CSDN博客:MongoDB 安裝配置

 

三、安裝MongoDB PHP擴展

根據自己的PHP版本下載PHP擴展:

http://php.net/manual/en/mongo.installation.php#mongo.installation.nix
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows

提示:
1、VC6適合Apache、VC9適合IIS;
2、Thread safe適合PHP以模塊運行方式、Non-thread safe適合CGI運行方式。
修改php.ini,加入:extension=php_mongo.dll,重啟Web服務器。

Ubuntu安裝步驟:

1. 下載插件: mongo-php-driver

2. 解壓安裝:

$ tar zxvf mongodb-mongodb-php-driver-.tar.gz
$ cd mongodb-mongodb-php-driver-
$ phpize
$ ./configure
$ make all
$ sudo make install

3. 配置php.ini

#extension=uploadprogress.so
#extension=http.so
#extension=intl.so
#extension=curl.so

extension=/usr/lib/php5/20121212/curl.so
extension=/usr/lib/php5/20121212/gd.so
extension=/usr/lib/php5/20121212/json.so
extension=/usr/lib/php5/20121212/mysql.so
extension=/usr/lib/php5/20121212/mysqli.so
#extension=/usr/lib/php5/20121212/opcache.so
extension=/usr/lib/php5/20121212/pdo.so
extension=/usr/lib/php5/20121212/pdo_mysql.so
#extension=/usr/lib/php5/20121212/readline.so
#extension=/usr/lib/php5/20121212/xdebug.so
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/redis.so
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/mongo.so

4. 重啟apache

sudo /etc/init.d/apache2 restart

5. 修改默認啟動項目(可選)

sudo vim /etc/apache2/apache2.conf

添加配置代碼如下:

1234567891011121314 *:80> ServerAdmin webmaster@localhost DocumentRoot /home/homer/workspace /home/homer/workspace/money_client> DirectoryIndex index.html index.php Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ServerName localhost DirectoryIndex index.html index.php ErrorLog ${APACHE_LOG_DIR}/error_alibuyer.log CustomLog ${APACHE_LOG_DIR}/access_alibuyer.log combined</VirtualHost>

 

四、PHP示例

1、連接Mongo服務器

1234567891011121314 $conn = new Mongo(); // 連接localhost:27017 $conn = new Mongo('test.com'); // 連接遠程主機默認端口 $conn = new Mongo('test.com:22011'); //連接遠程主機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); ?>

或者使用 MongoClient()

1234567891011121314151617 $MONGO_SERVER = array( 'host'=>'10.123.55.16', 'port'=>27017, 'dbname'=>'mimvp_money', 'user'=>'', 'pwd'=>''); $count = $coll->count(); print(count: . $count); $host_port = $MONGO_SERVER['host'] . : . $MONGO_SERVER['port']; // '10.123.55.16:20517' $conn = new MongoClient($host_port); $db = $conn->selectDB($MONGO_SERVER['dbname']); $coll = new MongoCollection($db, $connName); $conn->close();?>

 

2、指定數據庫和數據集名(表名)

1234 $db = $conn->blog; // 選擇數據庫blog $collection = $db->users; // 制定結果集(表名:users)?>

 

3、CRUD 操作

123456789101112131415 $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、關閉連接

123 $conn->close(); ?>

 

五、示例代碼

123456789101112131415161718192021222324252627282930313233343536373839 //這裡采用默認連接本機的27017端口,當然你也可以連接遠程主機如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 選擇comedy數據庫,如果以前沒該數據庫會自動創建,也可以用$m->selectDB(comedy); $db = $m->comedy; //選擇comedy裡面的collection集合,相當於RDBMS裡面的表,也-可以使用 $collection = $db->collection; $db->selectCollection(collection); //添加一個元素 $obj = array( title => Calvin and Hobbes-.date('i:s'), author => Bill Watterson ); //將$obj 添加到$collection 集合中 $collection->insert($obj); //添加另一個元素 $obj = array( title => XKCD-.date('i:s'), online => true ); $collection->insert($obj); //查詢所有的記錄 $cursor = $collection->find(); //遍歷所有集合中的文檔 foreach ($cursor as $obj) { echo $obj[title] .
; } //刪除所有數據 //$collection->remove(); //刪除 name 為hm //$collection->remove(array('name'=>'hm')); //斷開MongoDB連接 $m->close(); ?>

 

 

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