MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Guida introduttiva a PHP e MongoDB

ScaleGrid è una soluzione di gestione MongoDB per cloud pubblici. MongoDB (da "enorme") è un database NoSQL scalabile, ad alte prestazioni e open source di 10gen.

ScaleGrid ti aiuterà a eseguire il provisioning, configurare l'alta disponibilità e il ripristino di emergenza, il deprovisioning, il monitoraggio, l'aggiornamento, la clonazione, il backup e il ripristino delle distribuzioni MongoDB su AWS, Azure e DigitalOcean. Uno dei vantaggi di ScaleGrid è che ti offre l'accesso SSH completo alle tue istanze. Ciò ti consente di eseguire il tuo server PHP sulla stessa macchina del tuo server MongoDB, un vantaggio estremamente utile per scenari di sviluppo e test. In questo tutorial, ti mostreremo in cinque semplici passaggi come configurare il tuo server PHP e il server MongoDB sulla stessa macchina.

  1. Crea la tua istanza MongoDB su ScaleGrid

    Segui le istruzioni per iniziare qui per creare il tuo pool di macchine, creare istanze MongoDB, recuperare le credenziali SSH e SSH nell'istanza oppure consulta la nostra documentazione Creare un cluster MongoDB.

  2. Connettiti a MongoDB e popola i tuoi dati

    SSH nella tua istanza di MongoDB. Connettiti alla tua istanza MongoDB locale utilizzando il client mongo integrato e avvia alcune query:

    
    /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
    }
    

    Creiamo un database fittizio e inseriamo alcuni dati in una raccolta. Le "Raccolte" sono l'equivalente delle tabelle relazionali. Una collezione può contenere molti “documenti” che è l'equivalente delle righe nel mondo relazionale.

    >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 il tuo server PHP

    Se hai già un server PHP in esecuzione su una macchina separata dal server MongoDB, puoi saltare questo passaggio e passare al passaggio 4. Se non disponi di un server PHP , puoi installare un server PHP sulla macchina MongoDB. Questo è uno dei vantaggi dell'accesso SSH completo alle tue macchine 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. Installa l'estensione PHP Mongo

    Il supporto di MongoDB in PHP avviene tramite l'estensione Mongo PHP. Puoi  installarlo utilizzando il programma di installazione 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. Esegui codice PHP

    Recupera la stringa di connessione di MongoDB dalla console ScaleGrid nella scheda dei dettagli nella parte inferiore dello schermo. Se stai eseguendo il tuo codice PHP sulla stessa casella, puoi utilizzare 127.0.0.1.

    Scriviamo del codice PHP per interrogare i documenti nella raccolta che abbiamo appena creato. Crea un file chiamato test.php e inserisci il codice qui sotto nel file. Esegui il codice 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());
    }
    
    ?>
    

Per istruzioni ed esempi più dettagliati, fai riferimento alla documentazione 10gen sull'uso di PHP con Mongo.