Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Comece com o Laravel MongoDB

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.

Para criar o aplicação de Introdução, você precisa do seguinte software instalado em seu ambiente de desenvolvimento:

  • PHP

  • 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.

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.

1

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.

2

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
3

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!
4

Navegue até o diretório do aplicativo que você criou na etapa anterior:

cd my-app

Execute o seguinte comando para adicionar a chave de criptografia do aplicativo Laravel, que é necessária para criptografar cookies:

php artisan key:generate
5

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.

1

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.

2

Depois de criar o usuário de banco de dados, salve o nome de usuário e a senha desse usuário em um local seguro para uso em uma próxima etapa.

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.

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.

1

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.

O botão de conexão na seção de clusters da UI do Atlas

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.

2

Clique no ícone de cópia à direita da string de conexão para copiá-la para a área de transferência, como mostrado na seguinte captura de tela:

O botão de cópia da connection string na interface de usuário do Atlas
3

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.

1

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 .

2

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',
],
],
// ...
3

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.

1

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.
2

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\Model por MongoDB\Laravel\Eloquent\Model

  • Especifique "mongodb" no campo $connection

O arquivo Movie.php editado contém o seguinte código:

<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
3

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()
]);
}
4

Abra o arquivo web.php no diretório routes . Adicione uma importação para o MovieController e uma rota chamada browse_movies como mostrado no seguinte código:

<?php
// ...
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
5

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>
6

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();
}
7

Execute o seguinte comando a partir do diretório raiz do aplicativo para iniciar seu servidor da web integrado no PHP:

php artisan serve

Após o servidor iniciar, ele gera a seguinte mensagem:

INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
8

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.

1

Substitua o método store() no arquivo MovieController.php , localizado no diretório app/Http/Controllers pelo seguinte código:

public function store(Request $request)
{
$data = $request->all();
$movie = new Movie();
$movie->fill($data);
$movie->save();
}
2

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'
]);
3

Atualize o modelo Movie no diretório app/Models para especificar os campos que o método fill() preenche como mostrado no seguinte código:

class Movie extends Model
{
protected $connection = 'mongodb';
protected $fillable = ['title', 'year', 'runtime',
'imdb', 'plot'];
}
4

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
5

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.

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.

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.