欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。
1. 安裝MongoDB PHP driver
(1) 到這邊下載MongoDB PHP driver


- 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的才行。
2. 安裝 Laravel MongoDB 套件
- 根據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', '')
],
- .env加入:
MONGODB_HOST=127.0.0.1
MONGODB_POST=27017
MONGODB_DATABASE=local
MONGODB_USERNAME=
MONGODB_PASSWORD=
Note: MongoDB剛安裝好,預設是不需帳密就可以連線使用的,因此env config這邊username, password留空,所以若沒有額外設定,是有資安風險的,需特別注意。
本筆記參考:
1. https://www.it145.com/9/178616.html
2. https://github.com/jenssegers/laravel-mongodb
3. https://codeantenna.com/a/nKrbIzKqCe
4. https://blog.csdn.net/u010785091/article/details/91881323