MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Premiers pas avec PHP et MongoDB

ScaleGrid est une solution de gestion MongoDB pour les clouds publics. MongoDB (de "humongous") est une base de données NoSQL open source évolutive et hautes performances de 10gen.

ScaleGrid vous aidera à provisionner, configurer la haute disponibilité et la reprise après sinistre, déprovisionner, surveiller, mettre à niveau, cloner, sauvegarder et restaurer vos déploiements MongoDB sur AWS, Azure et DigitalOcean. L'un des avantages de ScaleGrid est qu'il vous donne un accès SSH complet à vos instances. Cela vous permet d'exécuter votre serveur PHP sur la même machine que votre serveur MongoDB, un avantage extrêmement utile pour les scénarios de développement et de test. Dans ce tutoriel, nous allons vous montrer en cinq étapes simples comment configurer votre serveur PHP et votre serveur MongoDB sur la même machine.

  1. Créez votre instance MongoDB sur ScaleGrid

    Suivez les instructions de démarrage ici pour créer votre pool de machines, créer des instances MongoDB, récupérer les identifiants SSH et SSH dans l'instance, ou consultez notre documentation Créer un cluster MongoDB.

  2. Connectez-vous à MongoDB et remplissez vos données

    SSH dans votre instance MongoDB. Connectez-vous à votre instance MongoDB locale à l'aide du client mongo intégré et lancez quelques requêtes :

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

    Créons une base de données factice et insérons des données dans une collection. Les « collections » sont l'équivalent des tables relationnelles. Une collection peut contenir de nombreux « documents », ce qui équivaut à des lignes dans le monde relationnel.

    >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. Configurer votre serveur PHP

    Si vous avez déjà un serveur PHP exécuté sur une machine distincte de votre serveur MongoDB, vous pouvez ignorer cette étape et passer à l'étape 4. Si vous n'avez pas de serveur PHP , vous pouvez installer un serveur PHP sur la machine MongoDB. C'est l'un des avantages d'avoir un accès SSH complet à vos machines 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. Installer l'extension PHP Mongo

    La prise en charge de MongoDB dans PHP s'effectue via l'extension PHP Mongo. Vous pouvez l'installer à l'aide du programme d'installation 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. Exécuter le code PHP

    Récupérez la chaîne de connexion MongoDB à partir de la console ScaleGrid dans l'onglet des détails en bas de l'écran. Si vous exécutez votre code PHP sur la même boîte, vous pouvez utiliser 127.0.0.1.

    Écrivons du code PHP pour interroger les documents de la collection que nous venons de créer. Créez un fichier appelé test.php et placez le code ci-dessous dans le fichier. Exécutez le code en utilisant "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());
    }
    
    ?>
    

Pour des instructions et des exemples plus détaillés, reportez-vous à la documentation 10gen sur l'utilisation de PHP avec Mongo.