Использование 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();