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

Kom godt i gang med PHP og MongoDB

ScaleGrid er en MongoDB-administrationsløsning til offentlige skyer. MongoDB (fra "humongous") er en skalerbar, højtydende, open source NoSQL-database af 10gen.

ScaleGrid hjælper dig med at klargøre, konfigurere høj tilgængelighed og gendannelse af katastrofer, deprovision, overvåge, opgradere, klone, sikkerhedskopiere og gendanne dine MongoDB-implementeringer på AWS, Azure og DigitalOcean. En af fordelene ved ScaleGrid er, at det giver dig fuld SSH-adgang til dine forekomster. Dette giver dig mulighed for at køre din PHP-server på den samme maskine som din MongoDB-server, en yderst nyttig fordel for udviklings- og testscenarier. I denne vejledning viser vi dig i fem enkle trin, hvordan du opsætter din PHP-server og MongoDB-server på den samme maskine.

  1. Opret din MongoDB-instans på ScaleGrid

    Følg vejledningen for at komme godt i gang her for at oprette din maskinpulje, oprette MongoDB-forekomster, hente SSH-legitimationsoplysninger og SSH ind i forekomsten, eller se vores Opret en MongoDB-klynge-dokumentation.

  2. Opret forbindelse til MongoDB og udfyld dine data

    SSH i din MongoDB-instans. Opret forbindelse til din lokale MongoDB-instans ved hjælp af den indbyggede mongo-klient og affyr nogle forespørgsler:

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

    Lad os oprette en dummy-database og indsætte nogle data i en samling. "Samlinger" svarer til relationelle tabeller. En samling kan indeholde mange "dokumenter", hvilket svarer til rækker i den relationelle verden.

    >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. Konfigurer din PHP-server

    Hvis du allerede har en PHP-server, der kører på en maskine, der er adskilt fra din MongoDB-server, kan du springe dette trin over og gå til trin 4. Hvis du ikke har en PHP-server , kan du installere en PHP-server på MongoDB-maskinen. Dette er en af ​​fordelene ved at have fuld SSH-adgang til dine MongoDB-maskiner:

    [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. Installer Mongo PHP-udvidelsen

    MongoDB-understøttelse i PHP er gennem Mongo PHP-udvidelsen. Du kan installere det ved hjælp af PECL-installationsprogrammet:

    [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. Kør PHP-kode

    Hent MongoDB-forbindelsesstrengen fra ScaleGrid-konsollen på fanen detaljer nederst på skærmen. Hvis du kører din PHP-kode på den samme boks, kan du bruge 127.0.0.1.

    Lad os skrive noget PHP-kode for at forespørge på dokumenterne i den samling, vi lige har oprettet. Opret en fil kaldet test.php og indsæt koden nedenfor i filen. Kør koden ved hjælp af "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());
    }
    
    ?>
    

For mere detaljerede instruktioner og eksempler henvises til 10gen-dokumentationen om brug af PHP med Mongo.


  1. Får indstillingen slave-read-only nej til at få slave til at bekræfte hvert hash-opslag med masteren?

  2. Kan ikke få Jedis-forbindelse; Kunne ikke hente en ressource fra puljen

  3. Konverter streng til ObjectID i MongoDB

  4. Den hurtigste MongoDB på Azure!