sql >> Databáze >  >> NoSQL >> MongoDB

Začínáme s PHP a MongoDB

ScaleGrid je řešení správy MongoDB pro veřejné cloudy. MongoDB (od „humongous“) je škálovatelná, vysoce výkonná, open source databáze NoSQL od 10gen.

ScaleGrid vám pomůže zřídit, nakonfigurovat vysokou dostupnost a obnovu po havárii, zrušit, monitorovat, upgradovat, klonovat, zálohovat a obnovovat vaše nasazení MongoDB na AWS, Azure a DigitalOcean. Jednou z výhod ScaleGrid je, že vám poskytuje plný přístup SSH k vašim instancím. To vám umožní provozovat váš PHP server na stejném počítači jako váš MongoDB server, což je mimořádně užitečná výhoda pro vývojářské a testovací scénáře. V tomto tutoriálu vám v pěti jednoduchých krocích ukážeme, jak nastavit váš PHP server a MongoDB server na stejném počítači.

  1. Vytvořte svou instanci MongoDB na ScaleGrid

    Postupujte podle pokynů pro zahájení zde a vytvořte si fond strojů, vytvořte instance MongoDB, načtěte přihlašovací údaje SSH a SSH do instance nebo si prohlédněte naši dokumentaci k vytvoření clusteru MongoDB.

    P>
  2. Připojte se k MongoDB a vyplňte svá data

    SSH do vaší instance MongoDB. Připojte se k místní instanci MongoDB pomocí vestavěného klienta mongo a spusťte některé dotazy:

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

    Pojďme vytvořit fiktivní databázi a vložit některá data do kolekce. „Kolekce“ jsou ekvivalentem relačních tabulek. Kolekce může obsahovat mnoho „dokumentů“, což je ekvivalent řádků v relačním světě.

    >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. Nastavte svůj PHP server

    Pokud již máte server PHP spuštěný na počítači odděleném od vašeho serveru MongoDB, můžete tento krok přeskočit a přejít ke kroku 4. Pokud nemáte server PHP , můžete nainstalovat server PHP na stroj MongoDB. Toto je jedna z výhod plného přístupu SSH k vašim počítačům 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. Nainstalujte rozšíření Mongo PHP

    Podpora MongoDB v PHP probíhá prostřednictvím rozšíření Mongo PHP. Můžete jej nainstalovat pomocí instalačního programu 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. Spusťte kód PHP

    Načtěte připojovací řetězec MongoDB z konzoly ScaleGrid na kartě podrobností ve spodní části obrazovky. Pokud spouštíte svůj PHP kód na stejném boxu, můžete použít 127.0.0.1.

    Pojďme napsat nějaký PHP kód pro dotazování dokumentů v kolekci, kterou jsme právě vytvořili. Vytvořte soubor s názvem test.php a vložte do něj níže uvedený kód. Spusťte kód pomocí „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());
    }
    
    ?>
    

Podrobnější pokyny a příklady naleznete v dokumentaci 10gen o používání PHP s Mongo.


  1. Kdy použít CouchDB přes MongoDB a naopak

  2. Jak uložit a načíst slovník pomocí redis

  3. 5 způsobů, jak získat milisekundy z data v MongoDB

  4. Nastavení doby vypršení platnosti kolekce v mongodb pomocí mongoose