ホームページ  >  記事  >  バックエンド開発  >  PHP7 での MongoDB ドライバーの使用の概要

PHP7 での MongoDB ドライバーの使用の概要

不言
不言オリジナル
2018-07-05 14:29:224963ブラウズ

この記事では主に PHP7 での MongoDB ドライバーの使用方法を紹介します。これには特定の参考値があります。今私はそれをあなたと共有します。必要な友人はそれを参照できます。

php7 は Mongodb のみを使用できますmongodb を駆動するためのドライバー。

Mongodb ドライバーを使用してデータベースに接続する

Mongodb ドライバーを初めて使い始めたとき、私は拒否しました。公式ドキュメントを見てみると、クラスと意味不明なメンバーメソッドが並んでいるだけで、長時間閲覧しても検索、更新、削除などのキーワードや、少し複雑なキーワードさえ見つかりませんでした。レプリカセットやユーザー認証など、データベースへの接続方法が不明でした。
幸いなことに、ドキュメントが完全に不足しているわけではありません。Mongodb\Driver\Manger::constructor をクリックすると、シェイプ内のいくつかの構築パラメータ

  • $uri が表示されます。 mongo://[ホスト:ポート,ホスト:ポート,ホスト:ポート]/[データベース名]?[ユーザー名=aa&パスワード=bb&replicaSet=cc]

  • ## $uriOptions は、上記の ? の後のパラメータの文字列で、ここに記述できます

  • $driverOptions デフォルトの読み取りおよび書き込みなどのその他のオプションパラメーター

MongodbDriver CURD 操作

これは、私が最初にこのドライバーが反人間的であると思った場所です。ドキュメントには、

Command クラスと Query クラス が 1 つだけ含まれます。 Query クラスは少し優れており、いくつかのクエリ オプションを提供します。
実際には、Mongo データベース上のすべての操作は Command クラスを通じて実行できます。 PHP ドライバーのドキュメントでは、特定の
commandOptions が紹介されていません。 私が mongodb を初めて使用するからこそ、このドライバーは非常に奇妙で反人間的であり、始める方法がないと感じています。

このドライバーを使用する上で重要なのは、Command クラスを使用して commandOption
そしてこの commandOption を使用する必要があることです。公式 mongodb から入手してください。ドキュメント内の MONGODB マニュアル - データベース コマンド
について学習してください。すべての操作、データの追加、削除、変更とクエリ、集計ソート、データベース ステータス、ユーザー認証などを行うことができます。これらのコマンドを通じて実行されます。以下にいくつかの例を示します。

    #データベースへの接続
  • #

    $this->_conn = new MongoDB\Driver\Manager('mongodb://localhost:27017/test');
    $this->_db = 'test';
    // execute command.
    function exec($opts) {
        $cmd = new MongoDB\Driver\Command($opts);
        $res =  $this->_conn->executeCommand($this->_db, $cmd);
        return $res->toArray();
    }

  • #条件付きクエリ、オンデマンドで返す
  • $cmd = [
        'find' => 'table', // collection表名
        'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]],
        'projection' => ['name' => 1, 'email' => 1]
    ];
    $res = $this-exec($cmd);

  • レコードの変更
  • $cmd = [
        'update' => 'table', // collection 表名
        'updates' => [
            ['q' => [_id => ['$lt' => 10]], 'u' => ['status' => 0], 'upsert'=>0,'multi'=>1],
            ['q' => [_id => ['$gte' => 10]], 'u' => ['status' => 1], 'upsert'=>0,'multi'=>1],
        ],
        'ordered' => 1, // 是否依次执行updates语句,true表示执行失败后继续后面的语句,false 表示一旦失败立即返回
    ]

  • レコードを削除します。
    制限は 1 のみですまたは0!
  • #

    $cmd = [
        'delete' => 'table', // collection 表名
        'deletes' => [
            ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行
        ]
    ]

    データの挿入
    $cmd = [
        'delete' => 'table', // collection 表名
        'deletes' => [
            ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行
        ]
    ]
  • グループ、並べ替え
    $cmd = [
        'aggregate' => 'table', // collection 表名
        'pipeline' => [
            '$group' => 'class',
            '$sort' => 'score'
        ]
    ]
  • #データベース ステータスの読み取り

$cmd = [
    'replSetGetStatus' => 1,
]
    補助クラス BSON
  • もちろん、最も便利なものは、

    MongoDB\BSON\Javascript
MongoDB\BSON\ObjectId

はそれぞれ JavaScript スクリプト関数を渡し、mongodb の objectid を使用します。

ExceptionMongoDBDriver によって生成された例外はすべて、MongoDB\Driver\Exception\Exception

を使用してキャプチャできます。上記はこの記事の内容全体です, 皆様の学習に役立つことを願っています。関連コンテンツの詳細については、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

PHP は Azure Storage BLOB を使用してファイルをアップロードします

imagettfbbox および imagettftext のテキストと画像を PHP で自動的にアップロードしますラップメソッド

以上がPHP7 での MongoDB ドライバーの使用の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。