Laravel对于Redis扩展用起来非常方便,理论上来说对于Mongodb的扩展也应该如此,为此今天我们来记录下Laravel是如何支持Mongodb的。
1.添加composer依赖(jenssegers/mongodb):
composer require jenssegers/mongodb
或者
在composer文件添加"jenssegers/mongodb": "3.2",然后执行composer update
- 配置Service Provider
providers追加: Jenssegers\Mongodb\MongodbServiceProvider::class,
aliases追加: 'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,
新增Mongo的匿名映射。
- 配置database(config/database.php)
connections 追加: 'mongodb' =>
[
//MongoDB 'driver' => 'mongodb',
'host' => '127.0.0.1',
'port' => 27017,
'username' => '',
'password' => '',
'database' => 'test',
//demodb 'options' => []
],
- 项目中如何使用:
1): 直接在代码中使用DB类连接对应的连接名,然后进行相应的操作:
$mongodb = DB::connection('mongodb'); // 获得mongodb的连接
$db = $mongodb->collection('user'); // 连接user数据库
$db->insert(['title' => 'email', 'article' => 'john@example.com','time' => time()]);
// 录入数据
dd($db->get());
dd($db->where('title', 'email')->get());
// 获取相关数据记录
2). 直接封装在model中,这样可以代码更加简洁
class TestModel extends Model
{
protected $table = 'user';
public static function connectMongo($table)
{
return $users = DB::connection('mongodb')->collection($table);
}
}
这样代码中调用的时候使用静态方法获取mongodb连接,然后进行相关操作,默认的话仍然操作Mysql数据库。调用代码范例如下:
$testModel = TestModel::connectMongo('user');
$testModel->insert(['title' => 'email1', 'article' => 'john@example.com','time' => time()]);
dd($testModel->where('title', 'email1')->get());
大家喜欢可以访问我的个人网站:http://www.yingminxing.com
如有疑问,欢迎沟通交流:QQ:370399195, 微信:yingminxing1988
网友评论