Bancos de dados e coleções
Visão geral
Neste guia, você pode aprender como usar bancos de dados e coleções MongoDB com a biblioteca PHP do MongoDB .
O MongoDB organiza os dados em uma hierarquia dos seguintes níveis:
Bancos de dados: Estruturas de dados de nível superior em um MongoDB deployment que armazenam collections.
Collections: grupos de documentos do MongoDB . Elas são análogas às tabelas do banco de dados relacional.
Documentos: unidades que armazenam dados literais, como string, números, datas e outros documentos incorporados. Para obter mais informações sobre os tipos e estrutura de campo de documento , consulte o guia Documentos no manual do MongoDB Server .
Acessar um banco de dados
Acesse um banco de dados de dados passando o nome do banco de dados de dados para o método MongoDB\Client::getDatabase()
.
O exemplo a seguir acessa um banco de dados denominado test_database
:
$db = $client->getDatabase('test_database');
Como alternativa, você pode chamar implicitamente o método secreto MongoDB\Client::__get()
em um objeto de cliente . Este método permite selecionar um banco de dados de dados usando a sintaxe para acessar uma propriedade de classe . O exemplo seguinte utiliza esta sintaxe abreviada para acessar o banco de banco de dados do test_database
:
$db = $client->test_database;
Dica
Para saber mais sobre __get()
e os métodos milagésimos do PHP, veja os seguintes recursos:
MongoDB\Client::__get()
na documentação da API da bibliotecaMétodos Mágicos no manual do PHP
Acessar uma coleção
Acesse uma collection usando um dos seguintes métodos:
MongoDB\Client::getCollection()
: Passe os nomes do banco de dados de dados e da coleção como parâmetrosMongoDB\Database::getCollection()
: Passe o nome da coleção como um parâmetro
O exemplo a seguir acessa uma coleção denominada test_collection
usando o método MongoDB\Database::getCollection()
:
$collection = $client->test_database->getCollection('test_collection');
Dica
Se o nome da coleção fornecido ainda não existir no banco de dados, o MongoDB criará implicitamente a coleção quando você inserir os dados pela primeira vez nela.
Como alternativa, você pode chamar implicitamente o método secreto MongoDB\Database::__get()
em um objeto de banco de dados de dados. Este método permite a você selecionar uma coleção utilizando a sintaxe para acessar uma propriedade de classe . O exemplo a seguir utiliza esta sintaxe de abreviação para acessar a collection test_collection
:
$collection = $db->test_collection;
Para saber mais, consulte a documentação da API do MongoDB\Database::__get()
.
Criar uma coleção
Passe um nome de coleção para o método MongoDB\Database::createCollection()
para criar explicitamente uma coleção em um banco de banco de dados MongoDB .
O exemplo a seguir cria uma collection chamada example_collection
:
$client->test_database->createCollection('example_collection');
Você pode especificar opções de collection, como tamanho máximo e regras de validação de documento , passando-as como uma array para o método createCollection()
. Para obter uma lista completa dos parâmetros opcionais, consulte a documentação da API.
Obter uma lista de coleções
Você pode executar query de uma lista de coleções em um banco de dados ligando para o método MongoDB\Database::listCollections()
. O método retorna um cursor contendo todas as collections no banco de dados e seus metadados associados.
O exemplo a seguir chama o método listCollections()
e itera sobre o iterador retornado para imprimir as coleções dos exemplos Acessar uma coleção e Criar uma coleção :
foreach ($client->test_database->listCollections() as $collectionInfo) { print_r($collectionInfo) . PHP_EOL; }
MongoDB\Model\CollectionInfo Object ( [name] => example_collection [type] => collection ... ) MongoDB\Model\CollectionInfo Object ( [name] => test_collection [type] => collection ... )
Excluir uma coleção
Você pode excluir uma coleção do banco de dados utilizando o método MongoDB\Database::dropCollection()
.
O exemplo a seguir exclui a collection test_collection
:
$client->test_database->dropCollection('test_collection');
Aviso
Eliminar uma coleção exclui todos os dados da coleção
Descartar uma collection do seu banco de dados exclui permanentemente todos os documentos e todos os índices dessa collection.
Solte uma coleção somente se não precisar mais dos dados nela.
Configurar operações de leitura e escrita
Você pode controlar como as operações de leitura e gravação são executadas em conjuntos de réplicas especificando uma preferência de leitura, preocupação de leitura ou preocupação de gravação.
Por padrão, os bancos de dados herdam configurações de leitura e gravação da instância MongoDB\Client
. As coleções herdam essas configurações da instância MongoDB\Client
ou MongoDB\Database
na qual o método getCollection()
é chamado. Você pode alterar essas configurações passando uma array de opções para os métodos MongoDB\Client::getDatabase()
, MongoDB\Client::getCollection()
ou MongoDB\Database::getCollection()
.
Para saber mais sobre como definir uma preferência de leitura, preocupação de leitura e preocupação de gravação, consulte o guia Especificar como as operações CRUD são executadas em conjuntos de réplicas .
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: