PHP7 の登場により、古い mongodb ドライバーはサポートされなくなりました。
利用可能な新しいドライバーは、以前のドライバーに比べて少し低レベルであるため、操作が少し複雑になる可能性があります。
これがこのライブラリが考案された目的です。
!!!詳細なガイドラインについては、次の Wiki を参照してください: https://github.com/ThomasSquall/PHP7MongoDriver/wiki
Composer の使用は非常に簡単で、次のコマンドを実行するだけです。
$ composer require thomas-squall/php7-mongo-driver
このライブラリを使用する前に、PHP7.0 またはメジャーおよび pecl から MongoDb ドライバーがインストールされていることを確認する必要があります。
Linux ディストリビューションを使用している場合 (pecl がインストールされていることを確認してください)、次のコマンドを実行してください。
$ sudo pecl install mongodb
その後、次の文字列を入力する必要があります
extension=mongodb.so
php.ini 内
まず、接続文字列を定義する必要があります。
接続文字列の形式は次のとおりです。
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
詳細については、リンクを参照してください: https://docs.mongodb.com/manual/reference/connection-string/
定義したら、新しいアダプターをインスタンス化する必要があります。
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
この時点で、クエリを実行するデータベースを選択します。
$ adapter -> selectDB ( ' myDatabase ' );
注: 2 番目のパラメータとしてデータベース名を渡すコンストラクターでデータベースを直接選択することもできます。
データベースを選択したら、必要なコレクションをクエリするだけです。
$ items = $ adapter -> find ( ' myCollection ' );
クエリをフィルタリングすることもできます。
use MongDriver Filter ;
$ filters =
[
new Filter ( ' myField1 ' , ' myValue1 ' , Filter:: IS_EQUALS ),
new Filter ( ' myField2 ' , [ ' myValue2 ' , ' myValue3 ' ], Filters:: IS_IN_ARRAY )
];
$ items = $ adapter -> find ( ' myCollection ' , $ filters );
項目を挿入したい場合は、コレクションを指定して配列またはオブジェクトを挿入関数に渡すだけです。
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
このライブラリがお役に立てば幸いです。
ぜひシェアしてフィードバックをお寄せください:)
トーマス