Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас

MongoDB

Вступ

MongoDB - одна з найпопулярніших документоорієнтованих NoSQL-баз даних, яку обирають за високе навантаження на запис (корисно для аналітики чи IoT) і високу доступність (легко налаштувати набори реплік з автоматичним перемиканням при збої). Вона також легко шардить базу для горизонтального масштабування й має потужну мову запитів для агрегації, текстового пошуку чи геопросторових запитів.

Замість того щоб зберігати дані в таблицях із рядків і стовпців, як SQL-бази, кожен запис у базі MongoDB - це документ, описаний у BSON, двійковому представленні даних. Далі застосунки можуть отримувати цю інформацію у форматі JSON. Підтримується широкий набір типів даних, зокрема документи, масиви, вкладені документи та двійкові дані.

Перш ніж користуватися MongoDB разом із Laravel, ми рекомендуємо встановити пакет mongodb/laravel-mongodb через Composer. Пакет laravel-mongodb офіційно підтримує MongoDB, і хоча PHP підтримує MongoDB нативно через драйвер MongoDB, пакет Laravel MongoDB дає багатшу інтеграцію з Eloquent та іншими можливостями Laravel:

composer require mongodb/laravel-mongodb

Встановлення

Драйвер MongoDB

Щоб підключитися до бази даних MongoDB, потрібне розширення PHP mongodb. Якщо ви розробляєте локально через Laravel Herd або встановили PHP через php.new, це розширення вже є у вашій системі. Проте якщо вам треба встановити його вручну, зробіть це через PECL:

pecl install mongodb

Докладніше про встановлення розширення MongoDB для PHP читайте в інструкції зі встановлення розширення MongoDB PHP.

Запуск сервера MongoDB

MongoDB Community Server дозволяє запустити MongoDB локально й доступний для встановлення на Windows, macOS, Linux або як контейнер Docker. Щоб дізнатися, як встановити MongoDB, зверніться до офіційного посібника зі встановлення MongoDB Community.

Рядок підключення до сервера MongoDB можна задати у вашому файлі .env:

MONGODB_URI="mongodb://localhost:27017"
MONGODB_DATABASE="laravel_app"

Щоб розмістити MongoDB у хмарі, розгляньте MongoDB Atlas. Щоб звертатися до кластера MongoDB Atlas локально зі свого застосунку, вам треба додати власну IP-адресу в мережевих налаштуваннях кластера до списку дозволених IP проєкту.

Рядок підключення до MongoDB Atlas також можна задати у вашому файлі .env:

MONGODB_URI="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority"
MONGODB_DATABASE="laravel_app"

Встановлення пакета Laravel MongoDB

Нарешті, встановіть пакет Laravel MongoDB через Composer:

composer require mongodb/laravel-mongodb

Встановлення цього пакета зазнає невдачі, якщо розширення PHP mongodb не встановлено. Конфігурація PHP може відрізнятися для CLI та вебсервера, тож переконайтеся, що розширення увімкнено в обох.

Конфігурація

Налаштувати підключення до MongoDB можна через конфігураційний файл config/database.php вашого застосунку. Додайте до нього підключення mongodb, що використовує драйвер mongodb:

'connections' => [
    'mongodb' => [
        'driver' => 'mongodb',
        'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'),
        'database' => env('MONGODB_DATABASE', 'laravel_app'),
    ],
],

Можливості

Коли конфігурацію завершено, ви можете користуватися пакетом mongodb і цим підключенням до бази у своєму застосунку, щоб скористатися низкою потужних можливостей:

Щоб дізнатися більше про використання MongoDB разом із Laravel, зверніться до посібника Quick Start від MongoDB.