Introdução MongoDB + PHP

Rápida exemplificação da integração do MongoDB com o PHP.

Imagem de capa

Para usar o mongodb com o PHP vocẽ precisa usar o driver do mongodb para PHP. Baixe o driver da url Download PHP Driver.Tenha certeza que baixou a última versão disponível. Agora descompacte o arquivo e coloque o arquivo php_mongo.dll no seu diretório de extensões PHP (“ext” por padrão) e adicione a seguinte linha no seu arquivo :extension=php_mongo.dll

Fazer uma conexão e Selecionar uma base de dados

Para fazer uma conexão, você precisa especificar o nome do banco de dados, se a banco de dados não existir o mongodb criará um automaticamente.

Trecho de código para conetar a um banco de dados:

<?php
   // conecta ao servidor mongodb
   $m = new MongoClient();
   echo "Conexao efetuada com sucesso";
   // seleciona/ou cria um banco de dados
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
?>

Quando o programa for executado, este produzirá o seguinte resultado:

Conexao efetuada com sucesso
Banco de dados mydb selecionado

Criar uma coleção

Trecho de código para criar uma coleção:

<?php
   // cconecta ao servidor mongodb
   $m = new MongoClient();
   echo "Conexao efetuada com sucesso";
   // select a database
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
   $collection = $db->createCollection("mycol");
   echo "Colecao criada com sucesso";
?>

Quando o programa é executado, este produzirá o seguinte resultado:

Conexao efetuada com sucesso
Banco de dados mydb selecionado
Colecao criada com sucesso

Inserindo um Documento

Para inserir um documento dentro do mongodb, o método insert() é usado.

Trecho de código para inserir um documento:

<?php
   // Conecta ao servidor mongodb
   $m = new MongoClient();
   echo "Banco de dados conectado com sucesso";
   // Seleciona um banco de dados
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
   $collection = $db->mycol;
   echo "Colecao selecionada com sucesso";
   $document = array( 
      "title" => "MongoDB", 
      "description" => "database", 
      "likes" => 100,
      "url" => "http://www.felipetoscano.com/blog/category/mongodb/",
      "by", "felipe toscano"
   );
   $collection->insert($document);
   echo "Documento inserido com sucesso";
?>

Quando o programa é executado, este produzirá o seguinte resultado:

Banco de dados conectado com sucesso
Banco de dados mydb selecionado
Colecao selecionada com sucesso
Documento inserido com sucesso

Retornando todos os documentos

Para retornar todos os documentos de uma coleção, o método find() é usado.

Trecho de código para retornar todos os documentos:

<?php
   // Conecta ao servidor mongodb
   $m = new MongoClient();
   echo "Banco de dados conectado com sucesso";
   // Seleciona um banco de dados
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
   $collection = $db->mycol;
   echo "Colecao selecionada com sucesso";

   $cursor = $collection->find();
   // iterando o cursor para exibir o titulo dos documentos
   foreach ($cursor as $document) {
      echo $document["title"] . "\n";
   }
?>

Quando o programa é executado, este produzirá o seguinte resultado:

Banco de dados conectado com sucesso
Banco de dados mydb selecionado
Colecao selecionada com sucesso

{
   "title": "MongoDB"
}

Atualizar um documento

Para atualizar um documento, vocẽ precisa usar o método update().

No exemplo a seguir, nós veremos como atualizar o título de um documento inserido para MongoDB Tutorial. O trecho de código para atualizar um documento:

<?php
   // conecta ao servidor mongodb
   $m = new MongoClient();
   echo "Banco de dados conectado com sucesso";
   // Seleciona um banco de dados
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
   $collection = $db->mycol;
   echo "Colecao selecionada com sucesso";

   // atualizando o documento
   $collection->update(array("title"=>"MongoDB"),     array('$set'=>array("title"=>"MongoDB Tutorial")));
   echo "Documento atualizado com sucesso";
   // exibindo o documento atualizado
   $cursor = $collection->find();
   // iteracao no cursor para exibir o titulo dos documentos
   echo "Documento atualizado:";
   foreach ($cursor as $document) {
      echo $document["title"] . "\n";
   }
?>

Quando o programa é executado, este produzirá o seguinte resultado:

Banco de dados conectado com sucesso
Banco de dados mydb selecionado
Colecao selecionada com sucesso
Documento atualizado com sucesso
Documento atualizado:

{
   "title": "MongoDB Tutorial"
}

Apagando um documento

Para apagar um documento, você precisa usar o método remove().

No exemplo a seguir, nós removeremos dos documentos aquele que tem o título MongoDB Tutorial. Trecho de código para apagar um documento:

<?php
   // conecta ao servidor mongodb
   $m = new MongoClient();
   echo "Banco de dados conectado com sucesso";
   // Seleciona um banco de dados
   $db = $m->mydb;
   echo "Banco de dados mydb selecionado";
   $collection = $db->mycol;
   echo "Colecao selecionada com sucesso";
   
   // removendo um documento
   $collection->remove(array("title"=>"MongoDB Tutorial"),false);
   echo "Documentos apagados com sucesso";
   
   // exibindo os documentos disponiveis
   $cursor = $collection->find();
   // iterando no cursor para exibir o titulo dos documentos
   echo "Documento Atualizado:";
   foreach ($cursor as $document) {
      echo $document["title"] . "\n";
   }
?>

Quando o programa é executado, este produzirá o seguinte resultado:

Banco de dados conectado com sucesso
Banco de dados mydb selecionado
Colecao selecionada com sucesso
Documentos apagados com sucesso

No exemplo dados acima, o segundo parametro é do tipo booleano e usado para estabelecer se remove um único elemento encontrado no método remove().

Os métodos save(), limit(), skip(), sort() e etc serão explicados em um tutorial subsequente.

Espero poder ter ajudado! Até o próximo tutorial! :)

Fonte Traduzida: TutorialsPoint - MongoDB PHP