PHP
mongo-php
サーチ…
構文
- find()
MongoDBとPHPの間のすべて
要件
MongoDBサーバーは通常ポート27017で動作します。(コマンドプロンプトで
mongod
と入力してmongodbサーバーを実行します)MongoDBエクステンションがインストールされたcgiまたはfpmとしてインストールされたPHP(MongoDB拡張モジュールはデフォルトのPHPにバンドルされていません)
Composerライブラリ(mongodb / mongodb)(プロジェクトルートで
php composer.phar require "mongodb/mongodb=^1.0.0"
を実行するには、MongoDBライブラリをインストールするにはphp composer.phar require "mongodb/mongodb=^1.0.0"
がphp composer.phar require "mongodb/mongodb=^1.0.0"
)
すべてが大丈夫なら、あなたは移動する準備ができています。
phpのインストールを確認する
コマンドプロンプトでphp -v
を実行してPHPのインストールを確認すると、このようなものが返ってくるでしょうか?
PHP 7.0.6 (cli) (built: Apr 28 2016 14:12:14) ( ZTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
MongoDBのインストールを確認する
mongo --version
を実行してMongoDBのインストールを確認するmongo --version
はMongoDB shell version: 3.2.6
を返しMongoDB shell version: 3.2.6
Composerのインストールを確認する
php composer.phar --version
実行してComposerのインストールを確認するphp composer.phar --version
はComposer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
を返すComposer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39
`
PHPからMongoDBに接続する
<?php
//This path should point to Composer's autoloader from where your MongoDB library will be loaded
require 'vendor/autoload.php';
// when using custom username password
try {
$mongo = new MongoDB\Client('mongodb://username:password@localhost:27017');
print_r($mongo->listDatabases());
} catch (Exception $e) {
echo $e->getMessage();
}
// when using default settings
try {
$mongo = new MongoDB\Client('mongodb://localhost:27017');
print_r($mongo->listDatabases());
} catch (Exception $e) {
echo $e->getMessage();
}
上記のコードは、 vendor/autoload.php
に含まれているMongoDBコンポーザーライブラリー( mongodb/mongodb
)を使用して接続し、 port
27017
実行されているMongoDBサーバーに接続します 。すべてが正常であれば、接続して配列を表示します。例外が発生した場合は、MongoDBサーバーに接続してメッセージが出力されます。
MongoDBへのCREATE(挿入)
<?php
//MongoDB uses collection rather than Tables as in case on SQL.
//Use $mongo instance to select the database and collection
//NOTE: if database(here demo) and collection(here beers) are not found in MongoDB both will be created automatically by MongoDB.
$collection = $mongo->demo->beers;
//Using $collection we can insert one document into MongoDB
//document is similar to row in SQL.
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
//Every inserted document will have a unique id.
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
この例では、これConnecting to MongoDB from php
使用していた$ mongoインスタンスを使用していConnecting to MongoDB from php
。 MongoDBはJSON型のデータフォーマットを使用していますので、PHPではMongoDBに配列を挿入して配列をJsonに変換し、その逆はmongoライブラリで行います。 MongoDBのすべてのドキュメントには、_idという名前の一意のIDがあります。挿入するときには、 $result->getInsertedId()
を使用して取得できます。
MongoDBでのREAD(検索)
<?php
//use find() method to query for records, where parameter will be array containing key value pair we need to find.
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
// all the data(result) returned as array
// use for each to filter the required keys
foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
MongoDBへのドロップ
<?php
$result = $collection->drop( [ 'name' => 'Hinterland'] );
//return 1 if the drop was sucessfull and 0 for failure
print_r($result->ok);
?>
$collection
は多くのメソッドがあります。MongoDBの公式ドキュメントを参照してください。