Menu Docs
Página inicial do Docs
/ / /
Laravel MongoDB
/

Bancos de dados e coleções

Nesta página

  • Visão geral
  • Especifique o banco de dados em uma configuração de conexão
  • Acessar uma coleção
  • Listar coleções
  • Criar e descartar coleções

Neste guia, você pode aprender como usar o Laravel MongoDB para acessar e gerenciar bancos de dados e coleções MongoDB.

O MongoDB organiza dados em uma estrutura hierárquica. Um sistema MongoDB contém um ou mais bancos de dados, e cada banco de dados contém uma ou mais collections. Em cada coleta, o MongoDB armazena dados como documentos que contêm pares de campo e valor. No Laravel MongoDB, você pode acessar documentos por meio de modelos Eloquent.

Para saber mais sobre o formato de dados do documento, consulteDocumentos do no manual do servidor MongoDB.

Você pode especificar um nome de banco de dados que uma conexão usa no arquivo config/database.php do seu aplicativo. A propriedade connections neste arquivo armazena todas as informações de conexão do banco de dados, como sua string de conexão, nome do banco de dados e, opcionalmente, detalhes de autenticação. Depois de especificar uma conexão com o banco de dados, você pode executar operações em nível de banco de dados e acessar collections que o banco de dados contém.

Se você definir o nome do banco de dados na propriedade database para o nome de um banco de dados inexistente, o Laravel ainda fará uma conexão válida. Quando você insere quaisquer dados em uma coleção no banco de dados, o servidor os cria automaticamente.

O exemplo seguinte mostra como definir uma conexão de banco de dados padrão e criar uma conexão de banco de dados para o banco de dados animals no arquivo config/database.php definindo as propriedades dsn e database :

'default' => 'mongodb',
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://localhost:27017/',
'database' => 'animals',
], ...
]

Quando você define uma conexão de banco de dados padrão, o Laravel MongoDB usa essa conexão para operações, mas você pode especificar várias conexões de banco de dados em seu arquivo config/database.php .

O exemplo seguinte mostra como especificar múltiplas conexões de banco de dados (mongodb e mongodb_alt) para acessar os bancos de dados animals e plants :

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://localhost:27017/',
'database' => 'animals',
],
'mongodb_alt' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://localhost:27017/',
'database' => 'plants',
]
], ...

Observação

O driver MongoDB PHP reutiliza a mesma conexão quando você cria dois clientes com a mesma connection string. Não há sobrecarga no uso de duas conexões para dois bancos de dados distintos, portanto, é desnecessário otimizar suas conexões.

Se o seu aplicativo contiver múltiplas conexões de banco de dados e você quiser armazenar seu modelo em um banco de dados diferente do padrão, substitua a propriedade $connection na sua classe Model .

O exemplo seguinte mostra como substituir a propriedade $connection na classe de modelo Flower para usar a conexão mongodb_alt . Isso direciona o Laravel MongoDB para armazenar o modelo na flowers collection do plants banco de dados , em vez de no banco de dados padrão:

class Flower extends Model
{
protected $connection = 'mongodb_alt';
}

Quando você cria uma classe de modelo que se estende MongoDB\Laravel\Eloquent\Model, o Laravel MongoDB armazena os dados do modelo em uma coleção com um nome formatado como a forma plural do nome da classe do modelo.

Por exemplo, se você criar uma classe de modelo chamada Flower, o Laravel aplicará o modelo à collection flowers no banco de dados.

Dica

Para saber como especificar um nome de coleção diferente em sua classe de modelo, consulte a seção Alterar o nome da coleção de modelo do guia Classe de modelo Eloquent.

Em geral, recomendamos que você use o ORM do Eloquent para acessar uma collection para legibilidade e manutenção do código. O exemplo a seguir especifica uma operação de localização usando a classe Flower , para que o Laravel recupere os resultados da coleção flowers :

Flower::where('name', 'Water Lily')->get()

Se não for possível realizar sua operação usando um modelo Eloquent, você pode acessar o construtor de query chamando o método collection() na interface DB . O exemplo a seguir mostra a mesma query do exemplo anterior, mas a query é construída usando o método DB::collection() :

DB::connection('mongodb')
->collection('flowers')
->where('name', 'Water Lily')
->get()

Para ver informações sobre cada uma das coleções em um banco de dados, chame o método listCollections() .

O exemplo a seguir acessa uma conexão de banco de dados e, em seguida, chama o método listCollections() para recuperar informações sobre as coleções no banco de dados:

$collections = DB::connection('mongodb')->getMongoDB()->listCollections();

Para saber como criar e eliminar collections, consulte a seção Executar migrações do Laravel no guia Construtor de esquemas.

Voltar

Habilitar e configurar TLS

Próximo

Ler operações