Использование MongoDB на Laravel
подключение к интерфейсу MongoDB:
mongosh
создать базу для задачи (в примере база: laravel):
use laravel
добавить пользователя с правами на чтение и запись (в примере база: laravel, пользователь: laravel, пароль: laravel123):
db.createUser({user:"laravel", pwd:"laravel123", roles:[{role:"readWrite", db:"laravel"}]})
для работы с базой данных MongoDB нужно, чтобы в PHP было дополнение ext-mongodb
для установки на Ubuntu или Linux Mint:
sudo apt-get install php-mongodb
если в Ubuntu или Linux Mint стоит более одной версии PHP и нужно установить для определенной:
sudo apt-get install php8.2-mongodb
установить пакет для laravel:
composer require mongodb/laravel-mongodb
если в Ubuntu или Linux Mint стоит более одной версии PHP и нужно установить от определенной:
php8.2 $(which composer) require mongodb/laravel-mongodb
добавить в файл .env конфигурацию MongoDB:
MONGODB_URI=mongodb://<USER>:<PASSWORD>@localhost:27017/<DBNAME>
добавить в файл config/database.php:
<?php
// ...
'connections' => [
// ...
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('MONGODB_URI'),
'database' => 'sample_mflix',
],
],
// ...
добавить в файл config/app.php:
<?php
// ...
'providers' => ServiceProvider::defaultProviders()->merge([
/*
* Package Service Providers...
*/
// ...
MongoDB\Laravel\MongoDBServiceProvider::class,
/*
* Application Service Providers...
*/
// ...
])->toArray(),
// ...
пример модели для взаимодействия с MongoDB:
<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Data extends Model
{
protected $fillable = ['uid', 'name', 'params'];
protected $connection = 'mongodb';
protected $collection = 'import_track_data';
}
пример новой записи:
<?php
//...
$data = new Data;
$data->uid = $uid;
$data->name = "Наименование";
$data->params = ["param1" => 123, "param2" => "строковое", "param3" => ["val1", "val2"]];
$data->save();
пример поиска записи:
<?php
// ...
$data = ImportTrackData::where('uid', '=', $uid)->first();