AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB PHPライブラリを使い始める

MongoDB PHPライブラリは、 MongoDB PHP拡張機能の高レベルの抽象化であり、 MongoDBに接続し、配置に保存されているデータを操作するために使用できます。 このガイドでは、 MongoDB PHPライブラリを使用してMongoDB AtlasでホストされているMongoDBクラスターに接続し、クラスター内のデータをクエリするアプリケーションを作成する方法について説明します。

Tip

MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。

次のガイドに従って、サンプルPHPアプリケーションをMongoDB Atlas配置に接続します。 別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、 公式ドライバーのリスト を参照してください。

1

開発を開始する前に、ローカル マシンに次の依存関係がインストールされていることを確認してください。

2

次のコマンドを実行して、 mongodb PHP拡張機能をインストールします。

pie install mongodb/mongodb-extension

Tip

PHP拡張バージョンの指定

PHP拡張機能の特定のバージョンをインストールするには、次のコマンドに示すようにバージョン番号を含めます。

pie install mongodb/mongodb-extension:^1.21.5

v1.21 より前のPHP拡張バージョンをインストールするには、pipeline コマンドを使用する必要があります。

3

ルートディレクトリから、 shellで次のコマンドを実行して、このプロジェクト用に php-quickstart というディレクトリを作成します。

mkdir php-quickstart

オペレーティング システムに対応するタブを選択し、次のコマンドを実行して、 php-quickstartディレクトリにquickstart.phpアプリケーション ファイルを作成します。

cd php-quickstart
touch quickstart.php
cd php-quickstart
type nul > quickstart.php
4

MongoDB PHPライブラリをインストールするには、 php-quickstartディレクトリで次のコマンドを実行します。

composer require mongodb/mongodb

ライブラリをインストールした後、次のコードをquickstart.phpファイルの先頭に追加して、Composer のautoload.phpファイルを含めます。

<?php
require_once __DIR__ . '/vendor/autoload.php';

これらの手順を完了すると、新しいプロジェクトディレクトリ、新しいアプリケーションファイル、およびライブラリの依存関係がインストールされます。

MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。

1

Complete the MongoDB Get Started guide to set up a new Atlas account and load sample data into a new free tier MongoDB deployment. Follow the instructions in the Cloud Deployment tabs to create your MongoDB Atlas deployment in the cloud.

2

データベースユーザーを作成 したら、そのユーザーのデータベースユーザー名とデータベースパスワードを安全な場所に保存して、後のステップで使用します。

これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。

MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。

接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。

Atlas でホストされていないインスタンスまたは配置に接続するには、 「 接続ターゲットの選択 」を参照してください。

1

To retrieve your connection string for the deployment that you created in the previous step, log in to your Atlas account and navigate to the Clusters page under the Database section. Click the Connect button for your new deployment.

Atlas UI のクラスター セクションの接続ボタン

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。

Connect to your application セクションの下の Drivers ボタンをクリックし、Driver 選択メニューから「PHP」を選択し、Version 選択メニューからインストールしたバージョンに最適化されたバージョンを選択します。

接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。

2

次のスクリーンショットに示すように、接続文字列の右側にある ボタンをクリックして、接続stringをクリップボードにコピーします。

UIの接続 の横にあるコピーボタンstringAtlas
3

この接続文字列をテキストエディタのファイルに貼り付け、<db_password> プレースホルダーをデータベースユーザーのパスワードに置き換えます。接続文字列には、すでにデータベースユーザーのユーザー名が入力されています。

このファイルを安全な場所に保存して、次の手順で使用します。

これらの手順を完了すると、 クラスターに対応する接続string Atlasが作成されます。

配置の接続string MongoDB Atlasを取得したら、 アプリケーションから配置に接続し、PHP Atlasサンプルデータセットをクエリできます。

1

次のコードをコピーして、 quickstart.phpファイルに貼り付けます。このコードは、 sample_mflixデータベース内のmoviesコレクションをクエリします。

<?php
require __DIR__ . '/../vendor/autoload.php';
$uri = getenv('MONGODB_URI') ?: throw new RuntimeException(
'Set the MONGODB_URI environment variable to your Atlas URI',
);
$client = new MongoDB\Client($uri);
$collection = $client->sample_mflix->movies;
$filter = ['title' => 'The Shawshank Redemption'];
$result = $collection->findOne($filter);
if ($result) {
echo json_encode($result, JSON_PRETTY_PRINT);
} else {
echo 'Document not found';
}
2

Assign the MONGODB_URI environment variable to the connection string that you copied from the Create a Connection String step of this guide. You can assign this variable by running a shell command or creating a .env file in your application, as show in the following tabs:

export MONGODB_URI=<connection string>
MONGODB_URI=<connection string>
3

プロジェクトディレクトリで、次shellコマンドを実行してアプリケーションを起動します。

php quickstart.php

コマンドライン出力には、検索された映画ドキュメントの詳細が含まれます。

{
"_id": {
"$oid": "..."
},
...
"rated": "R",
"metacritic": 80,
"title": "The Shawshank Redemption",
...
}

エラーが発生した場合や出力が表示されない場合は、適切な接続stringが MONGODB_URI 環境変数に割り当てられ、サンプルデータがロードされていることを確認してください。

これらの手順を完了すると、 MongoDBデプロイに接続し、サンプルデータに対してクエリを実行し、一致するドキュメントを返すPHPアプリケーションが作成されます。

クイック スタート チュートリアルを完了しました。

注意

この手順で問題が発生した場合は、このページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。

MongoDB Stack Overflowタグ または MongoDB Reddit Community を使用して、一般的な質問のサポートを見つけることができます。

このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するPHPアプリケーションを作成しました。

MongoDB PHPライブラリの詳細については、次のリソースを参照してください。

  • MongoDBへの接続 」セクションで、 MongoDB接続を構成する方法について学びます。

  • CRUD操作」セクションでは、読み取りおよび書込み (write) 操作の実行方法を学びます。

このセクションでは、 PHPライブラリとその依存関係をインストールするときに発生する可能性のある問題について説明します。

PHPライブラリをインストールするときに、次のコードのようなヘッダーファイルエラーが表示される場合があります。

/private/tmp/pear/install/mongodb/php_phongo.c:24:10: fatal error: 'php.h' file not found
#include <php.h>
^~~~~~~

このエラーは PHP のビルド システムが必要なヘッダーを見つけられないことを示します。すべてのPHP拡張機能は、コンパイルするために ヘッダーが必要です。これらのヘッダーは、拡張機能が使用されるPHPランタイムに対応している必要があります。peclpie によって呼び出される phpize コマンドは、通常、拡張機能が正しいヘッダーでビルドされることを保証します。

PHPランタイムをインストールする場合、対応するヘッダーは常に自動的に使用できるとは限りません。多くのLinuxディストリビューションでは、ヘッダーは多くの場合、別の php-dev または php-develパッケージで公開されます。macOS では、デフォルトのPHPランタイムに ヘッダーは含まれていません。ユーザーは通常、Homebrew を使用してPHPとそのヘッダーをインストールする必要があります。

システムに複数のバージョンのPHPがインストールされている場合、各バージョンには独自の peclpiephpize コマンドが含まれます。さらに、各PHPランタイムには、FPM や CLI などのサーバーアプリケーションプログラミング インターフェース(SAPI)ごとに個別の php.ini ファイルが含まれる場合があります。拡張機能をインストールしても実行時に使用できない場合は、適切な pecl または pie コマンドを使用し、適切な php.iniファイルを変更していることを確認してください。

php.iniPHPランタイムがどの ファイルを使用するかを確認するには、その特定の SAPI の sphereinfo() の出力を表示します。さらに、php_ini_loaded_file()php_ini_scanned_files() を使用して、 PHPによってロードされた INI ファイルを判断することもできます。

拡張機能が読み込まれていない場合に問題をデバッグするには、 ツールディレクトリで提供されている detect-extensionスクリプトを使用できます。このスクリプトは CLI から実行することも、 ウェブサーバーで使用可能なスクリプトに含めることもできます 。このツールは、システムの潜在的な問題とインストール手順を検索します。Composer を使用してライブラリをインストールした場合は、次のコードに示すように、ベンダーディレクトリからスクリプトを呼び出すことができます。

php vendor/mongodb/mongodb/tools/detect-extension.php

ウェブサーバーSAPI の構成を確認するには、ウェブサーバーで使用可能なスクリプトにファイルを含め、ブラウザで開きます。次のコードに示すように、出力を適切に形式ために、スクリプトを<pre> タグでラップしていることを確認してください。

<pre><?php require(...); ?></pre>

Windowsバイナリは、 PHPバージョン、スレッドセーフ設定(Typescriptまたは NTS)、アーキテクチャタイプ(x86 または x64)のいくつかの組み合わせで使用できます。 正しいバイナリを選択しないと、次のサンプル出力に示すように、実行時に拡張 DDL をロードしようとする際にエラーが発生します。

PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb'

次の PHP ランタイム プロパティに対応するDLL をダウンロードしたことを確認してください。

  • PHP バージョン( PHP_VERSION

  • スレッドの安全性( PHP_ZTS

  • アーキテクチャ( PHP_INT_SIZE

In addition to the preceding constants, these properties can also be inferred from phpinfo(). If your system has multiple PHP runtimes installed, view the phpinfo() output for the correct environment.

前のセクションで説明した detect-extensionスクリプトを使用して、 PHP環境に適したDLLを決定することもできます。

このページを評価