MongoDB
Введение
MongoDB — одна из самых популярных документно-ориентированных баз данных NoSQL, используемая из-за высокой нагрузки на запись (полезно для аналитики или IoT (Интернета вещей) и высокой доступности (простота настройки наборов реплик с автоматическим переходом на другой ресурс). Он также может легко сегментировать базу данных для горизонтального масштабирования и имеет мощный язык запросов для выполнения агрегирования, текстового поиска или геопространственных запросов.
Вместо хранения данных в таблицах строк или столбцов, как в базах данных SQL, каждая запись в базе данных MongoDB представляет собой документ, описанный в BSON, двоичном представлении данных. Затем приложения могут получить эту информацию в формате JSON. Он поддерживает широкий спектр типов данных, включая документы, массивы, встроенные документы и двоичные данные.
Прежде чем использовать MongoDB с Laravel, мы рекомендуем установить и использовать пакет mongodb/laravel-mongodb
через Composer. Пакет 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
Для получения дополнительной информации об установке расширения PHP MongoDB ознакомьтесь с инструкциями по установке расширения PHP MongoDB.
Запуск сервера MongoDB
Сервер MongoDB Community можно использовать для локального запуска MongoDB, и он доступен для установки в Windows, macOS, Linux или в виде контейнера Docker. Чтобы узнать, как установить MongoDB, обратитесь к официальному руководству по установке сообщества MongoDB.
Строку подключения к серверу 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
Наконец, используйте Composer для установки пакета 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 для Flysystem. — Большинство сторонних пакетов, использующих подключение к базе данных или Eloquent, можно использовать с MongoDB.
Чтобы продолжить изучение использования MongoDB и Laravel, обратитесь к краткому руководству по началу работы с MongoDB.