欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。
1. 安裝MongoDB PHP driver
(1) 到
這邊下載MongoDB PHP driver
我這邊是選用1.13.0版本的,點進DLL,根據PHP版本下載TS x64的,(我的PHP版本是8.0):
- Note: 可在phpinfo()確認環境: 因此要下載8.0 TS x64的driver
(2) 安裝php_mongodb.dll
下載解壓縮後,裡面有個php_mongodb.dll:
將這個dll複製到對應PHP版本的ext資料夾下:
php.ini加上extension=mongodb:
直接從wamp icon按也可以: Wamp->PHP->php.ini,事實上就是開啟apache/bin裡面的php.ini檔
(3) 檢查是否正常
- Note: 我這邊有把C:\wamp64\bin\php\php8.0.13設定進系統環境變數。
$ php -v
phpinfo() 裡面有找到mongodb表示安裝完成:
後記:
發現這個警告: Warning: PHP Startup: Unable to load dynamic library 'mongodb' (tried: c:/wamp64/bin/php/php8.0.13/ext/mongodb (找不到指定的模組。)
解法: 後來發現是因為driver下載成NTS x64版本的了,要下載TS x64的才行。
- 根據Laravel版本選擇安裝對應的package版本:
- 由於我的Laravel version是8,所以這邊選擇裝3.8.x的版本:
composer require jenssegers/mongodb:3.8
- config/database.php: 在connections中加入mongodb設定
'mongodb' => [
'driver' => 'mongodb',
'host' => env('MONGODB_HOST', '127.0.0.1'),
'port' => env('MONGODB_PORT', 27017),
'database' => env('MONGODB_DATABASE', 'local'),
'username' => env('MONGODB_USERNAME', ''),
'password' => env('MONGODB_PASSWORD', '')
],
MONGODB_HOST=127.0.0.1
MONGODB_POST=27017
MONGODB_DATABASE=local
MONGODB_USERNAME=
MONGODB_PASSWORD=
Note: MongoDB剛安裝好,預設是不需帳密就可以連線使用的,因此env config這邊username, password留空,所以若沒有額外設定,是有資安風險的,需特別注意。