在 Laravel 中使用 MongoDB


 

安裝 Laravel-MongoDB

  • 推薦組件
composer require jenssegers/mongodb
  • 注冊服務
Jenssegers\Mongodb\MongodbServiceProvider::class,
  • 添加 Facades
'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,
  • 修改數據庫配置文件 config/database.php 中
添加 MongoDB 的數據庫的信息: 'mongodb' => [ 'driver' => 'mongodb', 'host' => 'localhost', 'port' => 27017, 'database' => 'mydb', 'username' => '', 'password' => '', ], 'default' => env('DB_CONNECTION', 'mysql'), 改成: 'default' => env('DB_CONNECTION', 'mongodb'),
 

使用篇

 

查詢構造器

// 建立一個 UserController.php 控制器 php artisan make:controller UserController 參考代碼: use DB; //引用數據庫 class MongoController extends Controller{ pubulic function index(){ DB::collection('users') //選擇使用users集合 ->insert([ //插入數據 'name' => 'tom', 'age' => 18 ]); } $res = DB::collection('users')->all(); //查詢所有數據 dd($res); //打印數據 } 
  • 設置一個訪問路由,然后測試

如果你沒有修改默認的數據庫配置 (默認還是 MySQL), 那么你在使用 MongoDB 的時候就要指定使用 MongoDB 了

  • 例如:
use DB; //引用數據庫 class MongoController extends Controller{ pubulic function index(){ DB::connection('mongodb') //選擇使用mongodb ->collection('users') //選擇使用users集合 ->insert([ //插入數據 'name' => 'tom', 'age' => 18 ]); } $res = DB::connection('mongodb')->collection('users')->all(); //查詢所有數據 dd($res); //打印數據 }

有關查詢構造器的使用和 MySQLi 的方式是一樣的,參照 Laravel 文檔查詢構造器

 

Eloquent 模型

  • 在 config/app.php 配置文件中配置 MongoDB 的 Eloquent 類的別名
'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',
  • 新建一個 User.php 的 Model 類
php artisan make:model User
  • 參考代碼
<?php namespace App; use Moloquent; use DB; class Users extends Moloquent{ protected $connection = 'mongodb'; //庫名 protected $collection = 'users'; //文檔名 protected $primaryKey = '_id'; //設置id protected $fillable = ['id', 'name', 'phone']; //設置字段白名單 }
  • 在 UserController.php 控制器中這樣使用
<?phpnamespace App\Http\Controllers; use App\Users; //引入Users模型 class MongoController extends Controller{ public function index(){ Users::create([ //插入數據 'id' =>1, 'name' =>'tom', 'phone' =>110]); } dd(Users::all()); //查詢並打印數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM