sql >> Databasteknik >  >> NoSQL >> MongoDB

Komma igång med PHP och MongoDB

ScaleGrid är en MongoDB-hanteringslösning för offentliga moln. MongoDB (från "humongous") är en skalbar, högpresterande NoSQL-databas med öppen källkod från 10gen.

ScaleGrid hjälper dig att tillhandahålla, konfigurera hög tillgänglighet och katastrofåterställning, avadministration, övervaka, uppgradera, klona, ​​säkerhetskopiera och återställa dina MongoDB-distributioner på AWS, Azure och DigitalOcean. En av fördelarna med ScaleGrid är att det ger dig full SSH-åtkomst till dina instanser. Detta gör att du kan köra din PHP-server på samma maskin som din MongoDB-server, en extremt användbar fördel för utvecklings- och testscenarier. I den här handledningen visar vi dig i fem enkla steg hur du ställer in din PHP-server och MongoDB-server på samma maskin.

  1. Skapa din MongoDB-instans på ScaleGrid

    Följ att komma igång-anvisningarna här för att skapa din maskinpool, skapa MongoDB-instanser, hämta SSH-referenser och SSH till instansen, eller kolla in dokumentationen Skapa ett MongoDB-kluster.

  2. Anslut till MongoDB och fyll i dina data

    SSH till din MongoDB-instans. Anslut till din lokala MongoDB-instans med den inbyggda mongo-klienten och avfyra några frågor:

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

    Låt oss skapa en dummydatabas och infoga lite data i en samling. "Samlingar" är motsvarigheten till relationstabeller. En samling kan innehålla många "dokument" vilket är motsvarigheten till rader i relationsvärlden.

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

    Om du redan har en PHP-server som körs på en maskin separat från din MongoDB-server kan du hoppa över det här steget och gå vidare till steg 4. Om du inte har en PHP-server , kan du installera en PHP-server på MongoDB-maskinen. Det här är en av fördelarna med att ha full SSH-åtkomst till dina 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. Installera Mongo PHP-tillägget

    Stöd för MongoDB i PHP sker genom tillägget Mongo PHP. Du kan installera det med 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-kod

    Hämta MongoDB-anslutningssträngen från ScaleGrid-konsolen på informationsfliken längst ned på skärmen. Om du kör din PHP-kod på samma box kan du använda 127.0.0.1.

    Låt oss skriva lite PHP-kod för att söka efter dokumenten i samlingen vi just skapade. Skapa en fil som heter test.php och lägg in koden nedan i filen. Kör koden med “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());
    }
    
    ?>
    

För mer detaljerade instruktioner och exempel, se 10gen-dokumentationen om att använda PHP med Mongo.


  1. Redis Update Sorterad Set vid Key Expire

  2. Hur man byter namn på fält i Hash för flera nycklar i Redis

  3. Hur använder man vårdata mongo @CompoundIndex med undersamlingar?

  4. Mongoose/node.js hur man hittar, fyller på, gör saker, "avfolkar" och uppdaterar