Usando a Biblioteca do PHP para o MongoDB (PHPLIB)
Após a configuração inicial da extensão, continuaremos explicando como começar a usar a biblioteca correspondente no nível do usuário para escrever nosso primeiro projeto.
Instalando a Biblioteca do PHP com o Composer
A última coisa que ainda precisamos instalar para começar a usar o aplicativo em si é a biblioteca PHP.
A biblioteca precisa ser instalada com o » Composer, um gerenciador de pacotes para PHP. Instruções para instalar o Composer em diversas plataformas podem ser encontradas em seu site.
Instale a biblioteca executando:
$ composer require mongodb/mongodb
O resultado será algo como:
./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) - Installing mongodb/mongodb (1.0.0) Downloading: 100% Writing lock file Generating autoload files
O Composer criará vários arquivos: composer.json
,
composer.lock
e um diretório vendor
que
conterá a biblioteca e quaisquer outras dependências do seu projeto pode exigir.
Usando a Biblioteca do PHP
Além de gerenciar suas dependências, o Composer também fornecerá um carregador automático (para as classes dessas dependências). Certifique-se de que ele esteja incluído no início do seu script ou no código de inicialização da sua aplicação:
<?php
// Este caminho deve apontar para o carregador automático do Composer
require 'vendor/autoload.php';
Com isto feito, agora você pode usar qualquer funcionalidade descrita na » documentação da biblioteca.
Se você usou drivers MongoDB em outras linguagens, a API da biblioteca deverá parecer familiar. Ele contém uma classe » Client para conexão com o MongoDB, uma classe » Database para operações em nível de banco de dados (por exemplo, comandos, gerenciamento de coleção) e uma classe » Collection para operações em nível de coleção (por exemplo, métodos » CRUD, gerenciamento de índice).
Por exemplo, é assim que você insere um documento na coleção beers do banco de dados demo:
<?php
require 'vendor/autoload.php'; // inclui o auto-carregador do Composer
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserido com ID do Objeto '{$result->getInsertedId()}'";
?>
Como o documento inserido não continha um campo _id
, a
extensão irá gerar um MongoDB\BSON\ObjectId para
o servidor usar como _id
. Este valor também é disponibilizado
ao chamador por meio do objeto de resultado retornado pelo método
insertOne
.
Após a inserção, você pode consultar os dados que acabou de inserir.
Para isso, você usa o método find
, que retorna um cursor
iterável:
<?php
require 'vendor/autoload.php'; // inclui o auto-carregador do Composer
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
Embora possa não ser aparente nos exemplos, os documentos e arrays do BSON são
desserializados como classes especiais na biblioteca por padrão. Essas classes
estendem ArrayObject para usabilidade e implementam as
interfaces MongoDB\BSON\Serializable e
MongoDB\BSON\Unserializable da extensão para
garantir que os valores preservem seu tipo quando serializados de volta para BSON. Isso
evita uma ressalva na extensão mongo
legada, onde arrays
podem se transformar em documentos e vice-versa. Consulte a
especificação Dados Persistentes para obter mais informações sobre
como os valores são convertidos entre PHP e BSON.