sql >> Base de Datos >  >> NoSQL >> MongoDB

Primeros pasos con PHP y MongoDB

ScaleGrid es una solución de gestión de MongoDB para nubes públicas. MongoDB (de "huongous") es una base de datos NoSQL de código abierto, escalable y de alto rendimiento de la décima generación.

ScaleGrid lo ayudará a aprovisionar, configurar alta disponibilidad y recuperación ante desastres, desaprovisionar, monitorear, actualizar, clonar, respaldar y recuperar sus implementaciones de MongoDB en AWS, Azure y DigitalOcean. Una de las ventajas de ScaleGrid es que le brinda acceso SSH completo a sus instancias. Esto le permite ejecutar su servidor PHP en la misma máquina que su servidor MongoDB, un beneficio extremadamente útil para escenarios de desarrollo y prueba. En este tutorial, le mostraremos en cinco sencillos pasos cómo configurar su servidor PHP y el servidor MongoDB en la misma máquina.

  1. Cree su instancia de MongoDB en ScaleGrid

    Siga las instrucciones de inicio aquí para crear su grupo de máquinas, crear instancias de MongoDB, recuperar credenciales de SSH y SSH en la instancia, o consulte nuestra documentación sobre Crear un clúster de MongoDB.

  2. Conéctese a MongoDB y rellene sus datos

    SSH en su instancia de MongoDB. Conéctese a su instancia local de MongoDB utilizando el cliente mongo integrado y realice algunas 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
    }
    

    Creemos una base de datos ficticia e insertemos algunos datos en una colección. Las "colecciones" son el equivalente de las tablas relacionales. Una colección puede contener muchos "documentos", lo que equivale a filas en el 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. Configura tu servidor PHP

    Si ya tiene un servidor PHP ejecutándose en una máquina separada de su servidor MongoDB, puede omitir este paso y continuar con el paso 4. Si no tiene un servidor PHP , puede instalar un servidor PHP en la máquina MongoDB. Este es uno de los beneficios de tener acceso SSH completo a sus 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. Instalar la Extensión PHP de Mongo

    La compatibilidad con MongoDB en PHP es a través de la extensión Mongo PHP. Puedes  instalarlo usando el 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. Ejecutar código PHP

    Recupere la cadena de conexión de MongoDB desde la consola de ScaleGrid en la pestaña de detalles en la parte inferior de la pantalla. Si está ejecutando su código PHP en el mismo cuadro, puede usar 127.0.0.1.

    Escribamos un código PHP para consultar los documentos de la colección que acabamos de crear. Cree un archivo llamado test.php y coloque el código a continuación en el archivo. Ejecute el 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 obtener instrucciones y ejemplos más detallados, consulte la documentación de 10gen sobre el uso de PHP con Mongo.