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::selectDatabase() .
O exemplo a seguir acessa um banco de dados denominado test_database :
$db = $client->selectDatabase('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::selectCollection(): Passe os nomes do banco de dados de dados e da coleção como parâmetrosMongoDB\Database::selectCollection(): 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::selectCollection() :
$collection = $client->test_database->selectCollection('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:
$result = $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 selectCollection() é chamado. Você pode alterar essas configurações passando uma array de opções para os métodos MongoDB\Client::selectDatabase(), MongoDB\Client::selectCollection() ou MongoDB\Database::selectCollection() .
Para saber mais sobre como definir uma preferência de leitura, preocupação de leitura e preocupação de gravação, consulte o guia Configure Operações CRUD.
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: