Visão geral
Este guia mostra como adicionar o Laravel MongoDB a um novo aplicação da web Laravel , conectar-se a um cluster MongoDB hospedado no MongoDB Atlas e executar operações de leitura e gravação nos dados.
Dica
Se você preferir se conectar ao MongoDB usando a Biblioteca PHP do MongoDB sem Laravel, consulte Conectar-se ao MongoDB na documentação da Biblioteca PHP do MongoDB.
A integração do Laravel estende a sintaxe do Laravel Eloquent e do Query Builder para armazenar e recuperar dados do MongoDB.
O MongoDB Atlas é um serviço de banco de dados em nuvem totalmente gerenciado que hospeda seu Implantações do MongoDB. Você pode criar sua própria implantação do MongoDB Atlas gratuita (nenhum cartão de crédito exigido) seguindo as etapas deste guia.
Dica
Você pode baixar o projeto completo do aplicação da web clonando o repositório do Github laravel-quickstart.
Pré-requisitos
Para criar o aplicação de Introdução, você precisa do seguinte software instalado em seu ambiente de desenvolvimento:
Um aplicativo de terminal e shell. Para usuários do MacOS, use o Terminal ou um aplicativo semelhante. Para usuários do Windows, use o PowerShell.
Baixar e instalar
Conclua as etapas a seguir para instalar e adicionar as dependências de integração do Laravel a um aplicação da web do Laravel.
Dica
Como alternativa às etapas de instalação a seguir, você pode usar o Laravel Herd para instalar o MongoDB e configurar um ambiente de desenvolvimento para o Laravel MongoDB. Para obter mais informações sobre como usar o Laravel Herd com o MongoDB, consulte Instalando o MongoDB via Herd Pro na documentação do Herd.
Instalar a Extensão MongoDB PHP
O Laravel MongoDB requer a extensão MongoDB PHP para gerenciar conexões e comandos do MongoDB . Para saber como instalar a extensão PHP do MongoDB, consulte a etapa Instalar a extensão PHP do MongoDB do guia Introdução à Biblioteca PHP.
Instalar o Laravel
Certifique-se de que a versão do Laravel que você instala seja compatível com a versão da integração do Laravel. Para saber quais versões são compatíveis, consulte a página de Compatibilidade.
Execute o seguinte comando para instalar o Laravel:
composer global require laravel/installer
Quando a instalação for concluída, o comando gera a seguinte mensagem:
Using version ^<version number> for laravel/installer
Criar um aplicativo Laravel
Execute o seguinte comando para gerar um novo aplicativo web Laravel chamado my-app:
laravel new my-app
Quando a instalação for concluída, o comando gera a seguinte mensagem:
INFO Application ready in [my-app]. You can start your local development using: ➜ cd my-app ➜ php artisan serve New to Laravel? Check out our bootcamp and documentation. Build something amazing!
Adicionar Laravel MongoDB às dependências
Execute o seguinte comando para adicionar a dependência do Laravel MongoDB ao seu aplicativo:
composer require mongodb/laravel-mongodb:^5.8
Quando a instalação for concluída, verifique se o arquivo composer.json inclui a seguinte linha no objeto require :
"mongodb/laravel-mongodb": "^5.8"
Após completar estas etapas, você tem um novo projeto Laravel com as dependências do Laravel Integration instaladas.
Criar uma MongoDB deployment
Crie uma MongoDB deployment gratuita no Atlas
Complete o guia Iniciar MongoDB para configurar uma nova conta Atlas e carregar dados de amostra em uma nova implantação MongoDB de camada grátis. Siga as instruções nas abas Cloud Deployment para criar sua implantação do MongoDB Atlas na nuvem.
Depois de concluir essas etapas, você terá uma nova implantação do MongoDB de camada grátis no Atlas, trigger de banco de dados e dados de exemplo carregados no reconhecimento de data center.
Criar uma connection string
Você pode se conectar à sua implantação do MongoDB fornecendo um URI de conexão, também chamado de connection string, que instrui o driver sobre como se conectar a uma implantação do MongoDB e como se comportar enquanto estiver conectado.
A cadeia de conexão inclui o nome do host ou endereço IP e porta de sua implantação, o mecanismo de autenticação, as credenciais do usuário quando aplicável, e opções de conexão.
Para se conectar a uma instância ou sistema não hospedado no Atlas, consulte Connection strings no manual do servidor.
Encontre sua string de conexão do MongoDB Atlas.
Para recuperar a string de conexão da implantação criada na etapa anterior, faça login na sua conta do Atlas e navegue até a página Clusters na seção Database. Clique no botão Connect para sua nova implantação.

Se você ainda não tiver um usuário de banco de dados configurado, o MongoDB solicitará que você crie e configure um novo usuário.
Clique no botão Drivers abaixo de Connect to your application e selecione "PHP" no menu de seleção Driver e a versão que melhor corresponde à versão instalada no menu de seleção Version.
Certifique-se de que a opção View full code sample esteja desmarcada para visualizar somente a string de conexão.
Atualize o espaço reservado para senha.
Cole esta string de conexão em um arquivo no editor de texto de sua preferência e substitua o espaço reservado <db_password> pela senha do usuário de banco de dados. A string de conexão já está preenchida com o nome de usuário do seu usuário de banco de dados.
Salve este arquivo em um local seguro para uso na próxima etapa.
Depois de concluir essas etapas, você terá uma string de conexão que contém o nome de usuário e a senha do banco de dados.
Configurar sua conexão MongoDB
Configure o arquivo da variável de ambiente do aplicativo
Copie o arquivo .env.example para um arquivo chamado .env no diretório raiz do projeto executando o seguinte comando de shell:
cp .env.example .env
Abra o .env arquivo e adicione ou edite as seguintes variáveis e valores. Substitua o <connection string> placeholder pela sua string de conexão na etapa Criar uma connection string:
DB_CONNECTION=mongodb DB_URI="<connection string>"
Por exemplo, se sua connection string for "mongodb+srv://myUser:myPass123@mongo0.example.com/", sua variável DB_URI corresponderá à seguinte linha:
DB_URI="mongodb+srv://myUser:myPass123@mongo0.example.com/"
Observação
Certifique-se de que essas variáveis em seu arquivo .env estejam indefinidas no shell em que você executa seu aplicativo. As variáveis de ambiente no shell têm precedência sobre as no arquivo .env .
Defina a string de conexão na configuração do reconhecimento de data center
Abra o arquivo database.php no diretório config e configure a conexão do banco de dados padrão para a variável de ambiente do DB_CONNECTION como mostrado na seguinte linha:
'default' => env('DB_CONNECTION'),
Adicione a seguinte entrada mongodb destacada à array connections no mesmo arquivo:
'connections' => [ 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_URI'), 'database' => 'sample_mflix', ], ], // ...
Adicionar o provedor de integração Laravel
Abra o arquivo providers.php no diretório bootstrap e adicione a seguinte entrada na array:
MongoDB\Laravel\MongoDBServiceProvider::class,
Dica
Para saber como registrar o fornecedor no 10 Laravel.x, consulte Registrando fornecedores.
Após concluir estas etapas, seu aplicativo web Laravel está pronto para se conectar ao MongoDB.
Visualizar dados do MongoDB
Criar um modelo e um controlador
Crie um modelo chamado Movie para representar dados da collection de amostra movies no seu MongoDB database e o controlador de recurso correspondente executando o seguinte comando:
php artisan make:model Movie -cr
Quando o comando é concluído, ele gera a seguinte mensagem:
INFO Model [app/Models/Movie.php] created successfully. INFO Controller [app/Http/Controllers/MovieController.php] created successfully.
Edite o modelo para usar a integração com o Laravel
Abra o modelo Movie.php no seu diretório app/Models e faça as seguintes edições:
Substitua a importação
Illuminate\Database\Eloquent\ModelporMongoDB\Laravel\Eloquent\ModelEspecifique
"mongodb"no campo$connection
O arquivo Movie.php editado contém o seguinte código:
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Movie extends Model { protected $connection = 'mongodb'; }
Adicionar uma função de controlador
Abra o arquivo MovieController.php no seu diretório app/Http/Controllers . Substitua a função show() pelo seguinte código para recuperar resultados que correspondem a uma query de reconhecimento de data center e renderizá-lo na view:
public function show() { return view('browse_movies', [ 'movies' => Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get() ]); }
Gerar uma visualização
Execute o seguinte comando a partir do diretório raiz do aplicativo para criar uma visualização que exiba os dados do filme:
php artisan make:view browse_movies
Depois de executar o comando, ele gera a seguinte mensagem:
INFO View [resources/views/browse_movies.blade.php] created successfully.
Abra o arquivo de visualização browse_movies.blade.php no diretório resources/views . Substitua o conteúdo pelo seguinte código e salve as alterações:
<!DOCTYPE html> <html> <head> <title>Browse Movies</title> </head> <body> <h2>Movies</h2> @forelse ($movies as $movie) <p> Title: {{ $movie->title }}<br> Year: {{ $movie->year }}<br> Runtime: {{ $movie->runtime }}<br> IMDB Rating: {{ $movie->imdb['rating'] }}<br> IMDB Votes: {{ $movie->imdb['votes'] }}<br> Plot: {{ $movie->plot }}<br> </p> @empty <p>No results</p> @endforelse </body> </html>
Opcionalmente, visualize seus resultados como documentos JSON
Ao invés de gerar uma visualização e editar o arquivo browse_movies.blade.php , você pode utilizar o método toJson() para exibir seus resultados no formato JSON.
Substitua a função show() pelo seguinte código para recuperar resultados e devolvê-los como documentos JSON:
public function show() { $results = Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get(); return $results->toJson(); }
Visualizar os dados do filme
Abra a URL http://:127.0.0.1 8000/browse_movies em seu navegador da web. A página mostra uma lista de filmes e detalhes sobre cada um deles.
Dica
Você pode executar o comando php artisan route:list a partir do diretório raiz do aplicativo para visualizar uma lista de rotas disponíveis.
Gravar dados no MongoDB
Adicione uma rota de API que chama a função do controlador
Gere um arquivo de roteamento API executando o seguinte comando:
php artisan install:api
Dica
Pule esta etapa se você estiver usando o Laravel 10.x porque o arquivo que o comando gera já existe.
Importe o controlador e adicione uma rota de API que chama o método store() no arquivo routes/api.php :
use App\Http\Controllers\MovieController; // ... Route::resource('movies', MovieController::class)->only([ 'store' ]);
Postar uma solicitação na API
Crie um arquivo chamado movie.json e insira os seguintes dados:
{ "title": "The Laravel MongoDB Quick Start", "year": 2024, "runtime": 15, "imdb": { "rating": 9.5, "votes": 1 }, "plot": "This movie entry was created by running through the Laravel MongoDB Quick Start tutorial." }
Envie o payload JSON para o endpoint como uma solicitação POST executando o seguinte comando em seu shell:
curl -H "Content-Type: application/json" \ --data @movie.json \ http://localhost:8000/api/movies
Visualizar os dados
Abra http://:127.0.0.1 8000/browse_movies em seu navegador da web para ver as informações do filme que você enviou. O filme inserido aparece no topo dos resultados.
Próximos passos
Parabéns por concluir o guia de Introdução!
Depois de concluir estas etapas, você terá um aplicação da web Laravel que usa o Laravel MongoDB para se conectar à sua deployment do MongoDB , executar uma query nos dados de amostra e renderizar um resultado recuperado.
Você pode baixar o projeto de aplicação da web clonando o repositório laravel-quickstart do Github.
Dica
Tutorials
Saiba como implementar mais funcionalidades CRUD em um aplicação Laravel MongoDB seguindo o tutorial Criar um serviço de back-end usando o Laravel MongoDB.
Saiba como criar um aplicação completo de pilha que use o Laravel MongoDB seguindo o tutorial de Clone completo do Facebook com Laravel e MongoDB no YouTube.
Aprender mais
Saiba mais sobre as funcionalidades do Laravel MongoDB nos seguintes recursos:
Conectar ao MongoDB: saiba como configurar sua conexão MongoDB .
Interaja com dados: aprenda a ler e gravar seus dados MongoDB .
Modele seus dados: use classes de modelo Eloquent para trabalhar com dados MongoDB .
Construtor de Query: use o construtor de query para especificar queries e aggregations do MongoDB.
Observação
Se você tiver problemas nesta página, envie feedback usando a guia Rate this page no lado direito ou inferior direito desta página.
Você pode encontrar suporte para perguntas gerais usando a tag MongoDB Stack Overflow ou a comunidade MongoDB Reddit.
