Visão geral
A Biblioteca PHP do MongoDB é uma abstração de alto nível para a extensão MongoDB PHP, que você pode usar para se conectar ao MongoDB e interagir com dados armazenados em sua implantação. Este guia mostra como criar um aplicação que usa a biblioteca PHP do MongoDB para se conectar a um cluster MongoDB hospedado no MongoDB Atlas e consultar dados em seu cluster.
Dica
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.
Siga este guia para conectar um aplicação PHP de amostra a uma implantação do MongoDB Atlas . Se você preferir se conectar ao MongoDB usando um driver ou uma linguagem de programação diferente, consulte nossa lista de drivers oficiais.
Baixar e instalar
Instalar dependências
Antes de começar a desenvolver, verifique se você tem as seguintes dependências instaladas em sua máquina local:
PHP versão 7.4 ou posterior
Compositor versão 2.0 ou posterior
Instalar a extensão MongoDB PHP
Execute o seguinte comando para instalar a extensão PHP do mongodb
:
pie install mongodb/mongodb-extension
Dica
Especifique a versão da extensão PHP
Para instalar uma versão específica da extensão PHP, inclua o número da versão conforme mostrado no seguinte comando:
pie install mongodb/mongodb-extension:^2.1.1
Para instalar uma versão de extensão PHP anterior à1.21 v, você deve usar o comando pecl.
Criar uma diretoria de projeto
A partir do seu diretório raiz, execute o seguinte comando na sua shell para criar um diretório chamado php-quickstart
para este projeto:
mkdir php-quickstart
Selecione a aba correspondente ao seu sistema operacional e execute os seguintes comandos para criar um arquivo de aplicação quickstart.php
no diretório php-quickstart
:
cd php-quickstart touch quickstart.php
cd php-quickstart type nul > quickstart.php
Instalar a Biblioteca MongoDB PHP
Para instalar a biblioteca PHP do MongoDB , execute o seguinte comando em seu diretório php-quickstart
:
composer require mongodb/mongodb
Depois de instalar a biblioteca, inclua o arquivo autoload.php
do Composer adicionando o seguinte código ao topo do seu arquivo quickstart.php
:
require_once __DIR__ . '/vendor/autoload.php';
Depois de concluir estas etapas, você tem um novo diretório de projeto , um novo arquivo de aplicação e as dependências da biblioteca instaladas.
Criar uma MongoDB deployment
Você pode criar uma implantação MongoDB de camada gratuita no MongoDB Atlas para armazenar e gerenciar seus dados. O MongoDB Atlas hospeda e gerencia seu banco de dados MongoDB na nuvem.
Crie uma MongoDB deployment gratuita no Atlas
Complete o guia Iniciar com Atlas para configurar uma nova conta Atlas e carregar dados de amostra em uma nova implantação MongoDB de camada gratuita.
Após concluir estas etapas, você terá uma nova implantação de camada grátis do MongoDB no Atlas, credenciais de trigger de banco de dados e dados de exemplo carregados no seu reconhecimento de data center.
Criar uma connection string
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 conectar a uma instância ou sistema não hospedado no Atlas, consulte Escolha um destino de conexão.
Encontre sua connection string do MongoDB Atlas
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 seção Database e clique no botão Connect para a nova implantação.

Em seguida, selecione seu usuário no menu de seleção Select database user . Selecione "PHP" no menu de seleção Driver e a versão que melhor corresponde à versão instalada no menu de seleção Version .
Selecione a aba String na etapa Add connection string into your application code para visualizar somente a string de conexão.
Após concluir estas etapas, você tem uma string de conexão que corresponde ao seu agrupamento do Atlas .
Executar uma query de amostra
Depois de recuperar a string de conexão para sua implantação do MongoDB Atlas , você pode se conectar à implantação do seu aplicação PHP e consultar os conjuntos de dados de amostra do Atlas .
Editar seu arquivo de aplicação PHP
Copie e cole o seguinte código no arquivo quickstart.php
, que consulta a coleção movies
no banco de banco de dados sample_mflix
:
require __DIR__ . '/../vendor/autoload.php'; $uri = getenv('MONGODB_URI') ?: throw new RuntimeException( 'Set the MONGODB_URI environment variable to your Atlas URI', ); $client = new MongoDB\Client($uri); $collection = $client->sample_mflix->movies; $filter = ['title' => 'The Shawshank Redemption']; $result = $collection->findOne($filter); if ($result) { echo json_encode($result, JSON_PRETTY_PRINT); } else { echo 'Document not found'; }
Atribuir a connection string
Atribua a variável de ambiente MONGODB_URI
à string de conexão que você copiou da etapa Criar uma string de conexão deste guia. Você pode atribuir essa variável executando um comando shell ou criando um arquivo .env
em seu aplicação, conforme mostrado nas abas a seguir:
export MONGODB_URI=<connection string>
MONGODB_URI=<connection string>
Execute seu aplicação PHP
No diretório do projeto , execute o seguinte comando shell para iniciar o aplicação:
php quickstart.php
A saída da linha de comando contém detalhes sobre o documento de filme recuperado:
{ "_id": { "$oid": "..." }, ... "rated": "R", "metacritic": 80, "title": "The Shawshank Redemption", ... }
Se você encontrar um erro ou não vir nenhuma saída, certifique-se de atribuir a string de conexão adequada à variável de ambiente MONGODB_URI
e de que carregou os dados de amostra.
Depois de concluir essas etapas, você tem um aplicação PHP que se conecta à implementação do MongoDB , executa uma query nos dados de amostra e retorna um documento correspondente.
Próximos passos
Parabéns por concluir o tutorial de início rápido!
Observação
Se você tiver problemas neste tutorial, peça ajuda nos fóruns da MongoDB Community ou envie feedback usando a guia Rate this page no lado direito ou inferior direito desta página.
Neste tutorial, você criou um aplicação PHP que se conecta a um MongoDB hospedado no MongoDB Atlas e recupera um documento que corresponde a uma query.
Saiba mais sobre a biblioteca PHP do MongoDB nos seguintes recursos:
Saiba como configurar sua conexão do MongoDB na seção Conectar ao MongoDB .
Saiba como realizar operações de leitura e escrita na seção Operações CRUD.
Solução de problemas
Esta seção aborda problemas que você pode encontrar ao instalar a biblioteca PHP e suas dependências.
Cabeçalhos PHP não encontrados
Você pode ver um erro de arquivo de cabeçalho que se assemelha ao seguinte código ao instalar a biblioteca PHP:
/private/tmp/pear/install/mongodb/php_phongo.c:24:10: fatal error: 'php.h' file not found #include <php.h> ^~~~~~~
Este erro indica que o sistema de construção do PHP não consegue encontrar os cabeçalhos necessários. Todas as extensões PHP exigem cabeçalhos para compilar. Esses cabeçalhos devem corresponder ao tempo de execução PHP para o qual a extensão será usada. O comando phpize
, invocado por pecl
e pie
, geralmente garante que a extensão seja compilada com os cabeçalhos corretos.
Se você instalar um tempo de execução PHP, os cabeçalhos correspondentes nem sempre estarão disponíveis automaticamente. Em muitas distribuições Linux, os cabeçalhos são frequentemente publicados em um php-dev
php-devel
pacote ou separado. No macOS, o tempo de execução PHP padrão não inclui cabeçalhos. Os usuários normalmente devem instalar o PHP e seus cabeçalhos usando o Homebrew.
Vários tempos de execução PHP instalados
Se o seu sistema tiver múltiplas versões do PHP instaladas, cada versão terá seus próprios comandos pecl
, pie
e phpize
. Além disso, cada tempo de execução do PHP pode ter arquivos php.ini
separados para cada interface de programação de aplicação de servidor (SAPI), como FPM e CLI. Se você instalou a extensão, mas ela não estiver disponível no tempo de execução, certifique-se de usar o comando pecl
ou pie
correto e modificar o arquivo php.ini
apropriado.
Para ver qual php.ini
arquivo um tempo de execução PHP usa, visualize a saída de phpinfo() para esse SAPI específico. Além disso, você pode usar php_ini_loaded_file() e php_ini_scanned_files() para determinar quais arquivos INI foram carregados pelo PHP.
Para depurar problemas quando a extensão não é carregada, você pode usar o script detect-extension
fornecido no diretório de ferramentas. Você pode executar esse roteiro a partir da CLI ou incluí-lo em um roteiro disponível para seu servidor web. A ferramenta encontra possíveis problemas e instruções de instalação para o seu sistema. Se você instalou a biblioteca usando o Composer, poderá chamar o script do diretório do fornecedor, conforme mostrado no código a seguir:
php vendor/mongodb/mongodb/tools/detect-extension.php
Se você quiser verificar a configuração de um SAPI do servidor web, inclua o arquivo em um script disponível para o servidor web e abra-o no navegador. Certifique-se de envolver o script em marcações <pre>
para formatar corretamente sua saída, conforme mostrado no código a seguir:
<pre>require(...); </pre>
Carregar uma query incompatível no Windows
Os binários do Windows estão disponíveis para várias combinações de versão do PHP, configuração de segurança de thread (TS ou NTS) e tipo de arquitetura (x86 ou x64). Se o binário correto não for selecionado, ocorre um erro ao tentar carregar a query de extensão no tempo de execução, conforme mostrado na amostra de saída a seguir:
PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb'
Certifique-se de ter baixado uma query que corresponda às seguintes propriedades de tempo de execução do PHP:
Versão do PHP (
PHP_VERSION
)Segurança de thread (
PHP_ZTS
)Arquitetura (
PHP_INT_SIZE
)
Além das constantes anteriores, essas propriedades também podem ser inferidas a partir de phpinfo(). Se o seu sistema tiver vários tempos de execução PHP instalados, visualize a phpinfo()
saída para o ambiente correto.
Você também pode usar o script detect-extension
descrito na seção anterior para determinar a query correta para seu ambiente PHP.