1.php先安装mongodb扩展(连接的服务器或本地需要先安装mongodb==>传送门:https://www.jianshu.com/p/86d0714d8f9d)
下载地址:https://pecl.php.net/package/mongodb
image.png
image.png
示例为windows64位:
1)将下载到的压缩包内的php_mongodb.dll文件复制到php7.2下的ext文件夹内
2)在php.ini中写入extension=mongodb
extension=mongodb
image.png
3)cmd执行php -v查看运行是否正常
php -v
image.png
2.laravel安装使用mongodb的Eloquent模型(最好是指定版本,高版本容易出现一些未修复的bug)
composer require jenssegers/mongodb:3.6 --ignore-platform-reqs
3.config下的database.php设置mongodb信息
#可以写在了.env文件
'ge_mongodb' => [
'driver' => 'mongodb',
'host' => env('MONGODB_HOST', '127.0.0.1'),
'port' => env('MONGODB_POST', '27017'),
'database' => env('MONGODB_DB', 'users'),
'username' => env('MONGODB_USER', ''),
'password' => env('MONGODB_PASSWORD', ''),
],
4.Model引入
<?php
namespace App\Lib;
use Jenssegers\Mongodb\Eloquent\Model;
class MongodbUser extends Model{
//用户的mongodb集合
protected $connection = 'ge_mongodb'; //连接名
protected $collection = 'users'; //集合名称
protected $primaryKey = '_id'; //设置id
public $timestamps = false;
protected $fillable = ['name', 'age', 'create_time']; //设置字段白名单
}
5.调用
<?php
namespace App\Http\Controllers;
use App\Lib\MongodbUser;
class TestController extends Controller
{
//测试
public function test(){
//插入
$mongo = MongodbUser::create([
'name' => '小李子',
'age' => 20
]);
//查询
$info = MongodbUser::where('_id','6139bf4d3f3fd3498c0001b3')->get()->toArray();//单条查询
$list = MongodbUser::get()->toArray();//多条查询
//删除
$delete = MongodbUser::where('_id','6139c4873f3fd3498c0001b4')->delete();
var_dump($delete);//返回"int(1)"
//更新
$update = MongodbUser::where('_id', '6139bf1cad844ba5a13d67c4')->update(['name'=>'小小潘','age'=>19]);
var_dump($update);//返回"int(1)"
}
}