Laravel框架中集成MongoDB和使用详解

时间:2022-03-10 06:38:54

* 推荐组件

composer require jenssegers/mongodb ^3.3 -vvv(本人的laravel版本是5.5)

修改config/app.php

* 注册服务

Jenssegers\Mongodb\MongodbServiceProvider::class,

* 添加 Facades

'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,

* 修改数据库配置文件 config/database.php 中

添加 MongoDB 的数据库的信息:

?
1
2
3
4
5
6
7
8
'mongodb' => [
  'driver' => 'mongodb',
  'host'  => 'localhost',
  'port'  => 27017,
  'database' => 'mydb',
  'username' => '',
  'password' => '',
],

'default' => env('DB_CONNECTION', 'mysql'),

改成:

'default' => env('DB_CONNECTION', 'mongodb'),

修改配置文件.env

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DB_CONNECTION=mongodb
// 建立一个 UserController.php 控制器
php artisan make:controller UserController
 
public function index(){

 
DB::collection('users')    //选择使用users集合
 
->insert([       //插入数据
 
 
'name' => 'wjb',
 
 
'age'  => 29

 
]);

 
$res = DB::collection('users')->get(); //查询所有数据
 
dd($res);

 
}

* 设置一个访问路由, 此时时已成功插入和读取mongodb的数据

Eloquent 模型

* 在 config/app.php 配置文件中配置 MongoDB 的 Eloquent 类的别名

'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',

* 新建一个 User.php 的 Model 类

php artisan make:model User

* 修改User模型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php


 
namespace App;
 


use Moloquent;

 
use DB;
 


class User extends Moloquent
{

 
protected $connection = 'mongodb'; //库名
 
protected $collection = 'users'//文档名
 
protected $primaryKey = '_id'; //设置id
 
protected $fillable = ['id', 'name', 'phone']; //设置字段白名单
}

UserController.php控制器中修改:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php


 
namespace App\Http\Controllers;


 
use Illuminate\Http\Request;

 
use Illuminate\Support\Facades\DB;

 
use App\User;

 
class UserController extends Controller
{

 
public function index(){
  
 
User::create([      //插入数据
   
 
'_id'  =>1,
   
 
'name' =>'boss',
   
 
'phone' =>1308888888
  
 
]);
 
 
dd(User::all());   //查询并打印数据
 
}

 
}

以上这篇Laravel框架中集成MongoDB和使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/wangjinbao5566/article/details/79487047