PHP和MongoDB相結合,可以采用官方提供的mongdb-driver,也可以使用第三方擴展mongo,但$_id未被轉換為字符串型,可能會導致錯誤,因此第三方擴展在處理_id時需要特別注意。但是,最近推出的PHP MongoDB驅動程序(mongodb),完全采用C寫成,以提高性能。就像官方文檔中說的,“它針對MongoDB 2.4或更高版本進行了優化,支持所有核心MongoDB功能?!边@篇文章將詳細介紹如何使用php-mongodb-driver進行開發,并且會多舉例說明。
首先,我們需要確保已經安裝了mongodb擴展程序。您可以通過phpinfo()函數來檢查php-config是否已將mongodb添加到php.ini文件中。如果未在php.ini中添加命令,則需要將其添加到php.ini文件中并重啟服務器。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4; echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list sudo apt-get update sudo apt-get install -y mongodb-org
通過以下代碼連接MongoDB服務器:
$mongoClient = new \MongoDB\Driver\Manager('mongodb://localhost:27017');
這是連接到本地主機上的MongoDB實例。如果要連接到遠程MongoDB服務器,則需要指定遠程服務器的IP和端口號。
下一步是為用戶指定數據庫名稱。您可以使用以下命令將數據庫名稱設置為“testdb”,并將其附加到$command數組中:
$command = new \MongoDB\Driver\Command([ 'listCollection' =>1, 'nameOnly' =>true, 'filter' =>[] ]);
接下來,我們需要為MongoDB執行命令并獲取響應,以便我們可以查看所請求的集合列表。這可以通過以下代碼完成:
$cursor = $mongoClient->executeCommand("testdb", $command)->toArray();
如果要獲取集合中的第一條記錄,請使用以下代碼:
$collection = new \MongoDB\Driver\Query([], ['limit' =>1]); $result = $mongoClient->executeQuery("testdb.collectionName", $collection)->toArray();
與其他數據庫一樣,MongoDB不僅支持查詢數據,還支持數據的插入、更新和刪除操作。以下是使用MongoDB進行數據插入操作的示例:
$bulk = new \MongoDB\Driver\BulkWrite(); $doc = [ 'name' =>'Tom', 'age' =>'25' ]; $_id1 = $bulk->insert($doc); $result = $mongoClient->executeBulkWrite("testdb.collectionName", $bulk);
以上為數據插入操作示例,其他三種操作也是類似的。總之,使用php-mongodb-driver去訪問MongoDB相得益彰,可以大大提高您的Web應用程序性能。