MongoDB
Вступ
MongoDB є однією з найпопулярніших NoSQL документно-орієнтованих баз даних, яка використовується завдяки високому навантаженню на запис (корисно для аналітики або IoT) та високій доступності (легко налаштувати реплікаційні набори з автоматичним перемиканням при відмові). Вона також може легко розподілити базу даних для горизонтального масштабування та має потужну мову запитів для виконання агрегації, текстового пошуку або геопросторових запитів.
Замість зберігання даних у таблицях рядків або стовпців, як у SQL базах даних, кожен запис у базі даних MongoDB є документом, описаним у BSON, бінарному представленні даних. Застосунки можуть потім отримувати цю інформацію у форматі JSON. Він підтримує широкий спектр типів даних, включаючи документи, масиви, вбудовані документи та бінарні дані.
Перш ніж використовувати MongoDB з Laravel, ми рекомендуємо встановити та використовувати пакет mongodb/laravel-mongodb через компонувальник. Пакет laravel-mongodb офіційно підтримується MongoDB, і хоча MongoDB нативно підтримується PHP через драйвер 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 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 та підключення до бази даних у вашому застосунку, щоб скористатися різноманітними потужними функціями:
- Використання Eloquent, моделі можуть зберігатися в колекціях MongoDB. На додаток до стандартних функцій Eloquent, пакет Laravel MongoDB надає додаткові функції, такі як вбудовані відносини. Пакет також надає прямий доступ до драйвера MongoDB, який можна використовувати для виконання операцій, таких як сирі запити та агрегаційні конвеєри.
- Пишіть складні запити за допомогою конструктора запитів.
- Драйвер кешу
mongodbоптимізований для використання можливостей MongoDB, таких як TTL-індекси, для автоматичного очищення прострочених записів кешу. - Відправка та обробка завдань у черзі з драйвером черги
mongodb. - Зберігання файлів у GridFS, через GridFS Adapter для Flysystem.
- Більшість сторонніх пакетів, що використовують підключення до бази даних або Eloquent, можуть бути використані з MongoDB.
Щоб продовжити вивчення використання MongoDB та Laravel, зверніться до посібника швидкого старту MongoDB.
