sql >> データベース >  >> NoSQL >> MongoDB

PHPとMongoDBの使用開始

    ScaleGridは、パブリッククラウド向けのMongoDB管理ソリューションです。 MongoDB(「巨大な」から)は、10genによるスケーラブルで高性能なオープンソースのNoSQLデータベースです。

    ScaleGridは、AWS、Azure、およびDigitalOceanでのMongoDBデプロイメントのプロビジョニング、高可用性とディザスタリカバリの構成、プロビジョニング解除、監視、アップグレード、クローン作成、バックアップ、およびリカバリを支援します。 ScaleGridの利点の1つは、インスタンスへの完全なSSHアクセスを提供することです。これにより、PHPサーバーをMongoDBサーバーと同じマシンで実行できるようになり、開発およびテストのシナリオに非常に役立ちます。このチュートリアルでは、PHPサーバーとMongoDBサーバーを同じマシンにセットアップする方法を5つの簡単な手順で示します。

    1. ScaleGridでMongoDBインスタンスを作成する

      ここで開始手順に従って、マシンプールの作成、MongoDBインスタンスの作成、SSHクレデンシャルとSSHのインスタンスへの取得、またはMongoDBクラスターの作成に関するドキュメントを確認してください。

    2. MongoDBに接続してデータを入力する

      MongoDBインスタンスにSSHで接続します。組み込みのmongoクライアントを使用してローカルのMongoDBインスタンスに接続し、いくつかのクエリを実行します:

      
      /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サーバーのセットアップ

      MongoDBサーバーとは別のマシンでPHPサーバーを既に実行している場合は、この手順をスキップして手順4に進むことができます。PHPサーバーがない場合、MongoDBマシンにPHPサーバーをインストールできます。これは、MongoDBマシンへの完全なSSHアクセスを持つことの利点の1つです:

      [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. MongoPHP拡張機能をインストールする

      PHPでのMongoDBのサポートは、MongoPHP拡張機能を介して行われます。 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コードを実行する

      画面下部の[詳細]タブにあるScaleGridコンソールからMongoDB接続文字列を取得します。同じボックスでPHPコードを実行している場合は、127.0.0.1を使用できます。

      作成したコレクション内のドキュメントをクエリするためのPHPコードを記述しましょう。 test.phpというファイルを作成し、以下のコードをファイルに入れます。 「phptest.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());
      }
      
      ?>
      

    詳細な手順と例については、MongoでのPHPの使用に関する10genのドキュメントを参照してください。


    1. redisハッシュでキーパターンを検索する方法は?

    2. MongoDBでドキュメントのサイズを取得する2つの方法

    3. MongoDB $ cmp

    4. どうすればFlaskでMongoDBを使用できますか?