MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Introdução ao PHP e MongoDB

ScaleGrid é uma solução de gerenciamento do MongoDB para nuvens públicas. MongoDB (de "humongous") é um banco de dados NoSQL de código aberto escalável e de alto desempenho da 10gen.

ScaleGrid o ajudará a provisionar, configurar alta disponibilidade e recuperação de desastres, desprovisionar, monitorar, atualizar, clonar, fazer backup e recuperar suas implantações do MongoDB na AWS, Azure e DigitalOcean. Uma das vantagens do ScaleGrid é que ele oferece acesso SSH completo às suas instâncias. Isso permite que você execute seu servidor PHP na mesma máquina que seu servidor MongoDB, um benefício extremamente útil para cenários de desenvolvimento e teste. Neste tutorial, mostraremos em cinco etapas simples como configurar seu servidor PHP e o servidor MongoDB na mesma máquina.

  1. Crie sua instância do MongoDB no ScaleGrid

    Siga as instruções de introdução aqui para criar seu pool de máquinas, criar instâncias MongoDB, recuperar credenciais SSH e SSH na instância ou confira nossa documentação Criar um cluster MongoDB.

  2. Conecte-se ao MongoDB e preencha seus dados

    SSH em sua instância do MongoDB. Conecte-se à sua instância local do MongoDB usando o cliente mongo integrado e dispare algumas consultas:

    
    /usr/bin/mongo
    MongoDB shell version: 2.0.7
    connecting to: test
    >show dbs
    config  (empty)
    local   (empty)
    >db.version()
    2.0.7
    >db.stats()
    {
    "db" : "test",
    "collections" : 0,
    "objects" : 0,
    "avgObjSize" : 0,
    "dataSize" : 0,
    "storageSize" : 0,
    "numExtents" : 0,
    "indexes" : 0,
    "indexSize" : 0,
    "fileSize" : 0,
    "nsSizeMB" : 0,
    "ok" : 1
    }
    

    Vamos criar um banco de dados fictício e inserir alguns dados em uma coleção. “Coleções” são o equivalente a tabelas relacionais. Uma coleção pode conter muitos “documentos” que equivalem a linhas no mundo relacional.

    >use testdb
    switched to db testdb
    >db.testcollection.insert({"name":"blah", "value":"humbug"});
    >db.testcollection.insert({"name":"blah1", "value":"humbug1"});
    >db.find();
    { "_id" : ObjectId("50db292013d7f5d141a9cbfb"), "name" : "blah", "value" : "humbug" }
    { "_id" : ObjectId("50db292913d7f5d141a9cbfc"), "name" : "blah1", "value" : "humbug1" }
    
  3. Configure seu servidor PHP

    Se você já tiver um servidor PHP em execução em uma máquina separada do seu servidor MongoDB, pule esta etapa e vá para a etapa 4. Se você não tiver um servidor PHP , você pode instalar um servidor PHP na máquina MongoDB. Este é um dos benefícios de ter acesso SSH completo às suas máquinas MongoDB:

    [root@ip-10-29-173-18 ~]#yum install httpd php
    [root@ip-10-29-173-18 ~]#chkconfig httpd on
    [root@ip-10-29-173-18 ~]#service httpd start
    
  4. Instale a extensão PHP do Mongo

    O suporte ao MongoDB em PHP é feito por meio da extensão Mongo PHP. Você pode instalá-lo usando o instalador PECL:

    [root@ip-10-29-173-18 ~]#yum install php-pear
    [root@ip-10-29-173-18 ~]#yum install php-devel
    [root@ip-10-29-173-18 ~]#yum install make
    [root@ip-10-29-173-18 ~]#pecl install mongo
    [root@ip-10-29-173-18 ~]#echo "extension=mongo.so" >> /etc/php.ini
    [root@ip-10-29-173-18 ~]#/etc/init.d/httpd restart
    
  5. Executar código PHP

    Recupere a string de conexão do MongoDB no console do ScaleGrid na guia de detalhes na parte inferior da tela. Se você estiver executando seu código PHP na mesma caixa, poderá usar 127.0.0.1.

    Vamos escrever um código PHP para consultar os documentos na coleção que acabamos de criar. Crie um arquivo chamado test.php e coloque o código abaixo no arquivo. Execute o código usando “php test.php”.

    <?php
    try {
      // open connection to MongoDB server
      $conn = new Mongo('<connection string>');
    
      // access database
      $db = $conn->testdb;
    
      // access collection
      $collection = $db->testcollection;
    
      // execute query
      // retrieve all documents
      $cursor = $collection->find();
    
      // iterate through the result set
      // print each document
      echo $cursor->count() . ' document(s) found.
    ';
      foreach ($cursor as $obj) {
        echo 'Name: ' . $obj['name'] . '
    ';
        echo 'Value: ' . $obj['value'] . '
    ';
        echo '
    ';
      }
    
      // disconnect from server
      $conn->close();
    } catch (MongoConnectionException $e) {
      die('Error connecting to MongoDB server');
    } catch (MongoException $e) {
      die('Error: ' . $e->getMessage());
    }
    
    ?>
    

Para instruções e exemplos mais detalhados, consulte a documentação do 10gen sobre como usar PHP com Mongo.