MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Първи стъпки с PHP и MongoDB

ScaleGrid е решение за управление на MongoDB за публични облаци. MongoDB (от „humongous“) е мащабируема, високопроизводителна база данни NoSQL с отворен код от 10gen.

ScaleGrid ще ви помогне да осигурите, конфигурирате висока наличност и възстановяване след бедствие, обезпечаване, наблюдение, надстройка, клониране, архивиране и възстановяване на внедряванията на MongoDB в AWS, Azure и DigitalOcean. Едно от предимствата на ScaleGrid е, че ви дава пълен SSH достъп до вашите екземпляри. Това ви позволява да стартирате вашия PHP сървър на същата машина като вашия MongoDB сървър, изключително полезно предимство за сценарии за разработка и тестване. В този урок ще ви покажем в пет прости стъпки как да настроите своя PHP сървър и MongoDB сървър на една и съща машина.

  1. Създайте своя екземпляр на MongoDB в ScaleGrid

    Следвайте указанията за започване тук, за да създадете своя машинен пул, да създадете екземпляри на MongoDB, да извлечете SSH идентификационни данни и SSH в екземпляра или да разгледате нашата документация за създаване на MongoDB клъстер.

  2. Свържете се с MongoDB и попълнете данните си

    SSH във вашия екземпляр на MongoDB. Свържете се с вашия локален екземпляр на MongoDB с помощта на вградения mongo клиент и пуснете някои заявки:

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

    Нека създадем фиктивна база данни и да вмъкнем някои данни в колекция. „Колекциите“ са еквивалент на релационни таблици. Една колекция може да съдържа много „документи“, което е еквивалент на редове в релационния свят.

    >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. Настройте своя PHP сървър

    Ако вече имате PHP сървър, работещ на машина, отделна от вашия MongoDB сървър, можете да пропуснете тази стъпка и да преминете към стъпка 4. Ако нямате PHP сървър , можете да инсталирате PHP сървър на MongoDB машината. Това е едно от предимствата на пълен SSH достъп до вашите 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. Инсталирайте разширението Mongo PHP

    Поддръжката на MongoDB в PHP е чрез разширението Mongo PHP. Можете да го инсталирате с помощта на инсталатора на 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. Изпълнете PHP код

    Извлечете низа за връзка MongoDB от конзолата ScaleGrid в раздела с подробности в долната част на екрана. Ако изпълнявате своя PHP код в същото поле, можете да използвате 127.0.0.1.

    Нека напишем някакъв PHP код, за да потърсим документите в колекцията, която току-що създадохме. Създайте файл, наречен test.php и поставете кода по-долу във файла. Изпълнете кода с помощта на “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());
    }
    
    ?>
    

За по-подробни инструкции и примери вижте документацията на 10gen относно използването на PHP с Mongo.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Причини за и против преминаването от SQL сървър към MongoDB

  2. Как да променя реда на масива с MongoDB?

  3. Съображения за администриране на MongoDB

  4. Как да изпълним собствена заявка на MongoDB (JSON) само с помощта на mongo-java-driver?

  5. Удостоверяването на MongoDB 3.2 не бе успешно