Любите загадки? Событие еще доступно на сайте.
Ищете работу? Мы поможем!
Ищете работу? Мы поможем!

MongoDB

Вы просматриваете документ для прошлой версии.
Рассмотрите возможность обновления вашего проекта до актуальной версии 12.x. Почему это важно?

Введение

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.