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

Lambda MongoDBを使い始める

このガイドでは、Lambda MongoDB を新しい Lambel ウェブアプリケーションに追加する方法、MongoDB Atlas でホストされている MongoDB クラスターに接続する方法、データに対して読み取り操作および書込み操作を実行する方法を説明します。

Tip

Lalavel なしでMongoDB PHPライブラリを使用してMongoDBに接続する場合は、 MongoDB PHPライブラリのドキュメントの「MongoDBへの接続」を参照してください。

Lambel 統合は、MongoDB からデータを保存および検索するための Lambel Eloqueent および クエリ ビルダの構文を拡張したものです。

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

Tip

laravel-quickstart Githubリポジトリを複製することで、完全なウェブアプリケーションプロジェクトをダウンロードできます。

はじめにアプリケーションを作成するには、開発環境に次のソフトウェアがインストールされている必要があります。

  • PHP

  • ターミナルアプリと shell。 MacOS ユーザーの場合は、ターミナルまたは同様のアプリを使用します。 Windows ユーザーの場合は、 PowerShell を使用します。

Lambda 統合の依存関係をインストールして Lambda の Web アプリケーションに追加するには、次の手順を実行します。

Tip

次のインストール手順の代わりに、 Lambda を使用してMongoDBをインストールし、 MongoDBの開発環境を構成できます。MongoDBでMongoDBを使用する方法の詳細については、 を使用するドキュメントを参照してください。

1

Lambda MongoDBでは、 MongoDB の接続とコマンドを管理するためにMongoDB PHP拡張機能が必要です。MongoDB PHP拡張機能をインストールする方法については、 PHPライブラリガイドの「 MongoDB PHP拡張機能のインストール 」のステップを参照してください。

2

インストールする Lambda のバージョンが Lambda 統合のバージョンと互換性があることを確認します。互換性のあるバージョンについては、互換性ページを参照してください。

Lambda をインストールするには、以下のコマンドを実行します。

composer global require laravel/installer

インストールが完了すると、 コマンドは次のメッセージを出力します。

Using version ^<version number> for laravel/installer
3

次のコマンドを実行して、 my-appという新しい Lambda ウェブ アプリケーションを生成します。

laravel new my-app

インストールが完了すると、 コマンドは次のメッセージを出力します。

INFO Application ready in [my-app]. You can
start your local development using:
➜ cd my-app
➜ php artisan serve
New to Laravel? Check out our bootcamp and documentation.
Build something amazing!
4

前の手順で作成したアプリケーション ディレクトリに移動します。

cd my-app

次のコマンドを実行して、クッキーを暗号化するのに必要な Lambda アプリケーション暗号化キーを追加します。

php artisan key:generate
5

次のコマンドを実行して、Larevel MongoDB の依存関係をアプリケーションに追加します。

composer require mongodb/laravel-mongodb:^5.8

インストールが完了したら、 composer.jsonファイルのrequireオブジェクトに次の行が含まれていることを確認します。

"mongodb/laravel-mongodb": "^5.8"

これらの手順を完了すると、Laravel 統合の依存関係がインストールされた新しい Lambel プロジェクトが作成されます。

1

MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層の MongoDB 配置にロードします。Cloud Deployment タブの手順に従って、クラウドにMongoDB Atlas の配置を作成します。

2

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

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

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

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

Atlas でホストされていないインスタンスまたは配置に接続するには、サーバー マニュアルの「接続文字列」を参照してください。

1

前のステップで作成した配置の接続文字列を取得するには、Atlas アカウントにログインし、Clusters セクションの下の Database ページに移動します。新しい配置で Connect ボタンをクリックします。

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

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

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

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

2

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

UI の接続 コピーstring ボタンAtlas
3

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

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

これらの手順を完了すると、データベースのユーザー名とパスワードを含む接続stringが作成されます。

1

次の shell コマンドを実行して、 .env.exampleファイルをプロジェクト ルート ディレクトリ内の.envという名前のファイルにコピーします。

cp .env.example .env

.envファイルを開き、次の変数と値を追加または編集します。<connection string> プレースホルダーを 接続文字列の作成 ステップの接続文字列に置き換えます。

DB_CONNECTION=mongodb
DB_URI="<connection string>"

たとえば、接続stringが "mongodb+srv://myUser:myPass123@mongo0.example.com/" の場合、DB_URI 変数は次の行と一致します。

DB_URI="mongodb+srv://myUser:myPass123@mongo0.example.com/"

注意

.envファイル内のこれらの変数が、アプリケーションを実行する shell で未定義であることを確認します。 shell 内の環境変数は、 .envファイル内の環境変数よりも優先されます。

2

configディレクトリ内のdatabase.phpファイルを開き、次の行に示すように、 DB_CONNECTION環境変数へのデフォルトのデータベース接続を設定します。

'default' => env('DB_CONNECTION'),

次のハイライトされているmongodbエントリを同じファイル内のconnections配列に追加します。

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_URI'),
'database' => 'sample_mflix',
],
],
// ...
3

bootstrapディレクトリ内のproviders.phpファイルを開き、次のエントリを 配列に追加します。

MongoDB\Laravel\MongoDBServiceProvider::class,

Tip

Lambda 10.x でプロバイダーを登録する方法については、「 プロバイダーの登録 」を参照してください。

これらの手順を完了すると、Lambel ウェブ アプリケーションは MongoDB に接続する準備が整います。

1

MongoDB database 内のサンプルmoviesコレクションのデータを表すために、 Movieというモデルと対応するリソース コントローラーを次のコマンドで実行して作成します。

php artisan make:model Movie -cr

コマンドが完了すると、次のメッセージが出力されます。

INFO Model [app/Models/Movie.php] created successfully.
INFO Controller [app/Http/Controllers/MovieController.php]
created successfully.
2

app/ModelsディレクトリでMovie.phpモデルを開き、次の編集を行います。

  • Illuminate\Database\Eloquent\ModelインポートをMongoDB\Laravel\Eloquent\Modelに置き換え

  • $connectionフィールドに"mongodb"を指定する

編集されたMovie.phpファイルには、次のコードが含まれています。

<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
3

app/Http/ControllersディレクトリでMovieController.phpファイルを開きます。 show()関数を次のコードで置き換えると、データベース クエリに一致する結果が検索され、それが ビューでレンダリングされます。

public function show()
{
return view('browse_movies', [
'movies' => Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get()
]);
}
4

routesディレクトリでweb.phpファイルを開きます。 次のコードに示すように、 MovieControllerbrowse_moviesというルートのインポートを追加します。

<?php
// ...
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
5

アプリケーション ルート ディレクトリから次のコマンドを実行して、映画データを表示するビューを作成します。

php artisan make:view browse_movies

コマンドを実行すると、次のメッセージが出力されます。

INFO View [resources/views/browse_movies.blade.php] created
successfully.

resources/viewsディレクトリでbrowse_movies.blade.phpビューファイルを開きます。 内容を次のコードで置き換え、変更を保存します。

<!DOCTYPE html>
<html>
<head>
<title>Browse Movies</title>
</head>
<body>
<h2>Movies</h2>
@forelse ($movies as $movie)
<p>
Title: {{ $movie->title }}<br>
Year: {{ $movie->year }}<br>
Runtime: {{ $movie->runtime }}<br>
IMDB Rating: {{ $movie->imdb['rating'] }}<br>
IMDB Votes: {{ $movie->imdb['votes'] }}<br>
Plot: {{ $movie->plot }}<br>
</p>
@empty
<p>No results</p>
@endforelse
</body>
</html>
6

ビューを生成してbrowse_movies.blade.phpファイルを編集する代わりに、 toJson()メソッドを使用して結果を JSON 形式で表示できます。

結果を検索し、JSON ドキュメントとして返すには、 show()関数を次のコードで置き換えます。

public function show()
{
$results = Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get();
return $results->toJson();
}
7

PHP 組み込みウェブ サーバーを起動するには、アプリケーション ルート ディレクトリから次のコマンドを実行します。

php artisan serve

サーバーが起動すると、次のメッセージが出力されます。

INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
8

ウェブ ブラウザでURL http://:127.0.0.1 8000/browse_movies を開きます。ページには、映画のリストとそれぞれの詳細が表示されます。

Tip

アプリケーションのルート ディレクトリからphp artisan route:listコマンドを実行すると、利用可能なルートのリストが表示されます。

1

次のコードで、 app/Http/ControllersディレクトリにあるMovieController.phpファイル内のstore()メソッドを置き換えます。

public function store(Request $request)
{
$data = $request->all();
$movie = new Movie();
$movie->fill($data);
$movie->save();
}
2

次のコマンドを実行して API ルート ファイルを生成します。

php artisan install:api

Tip

Lambda 10 .x を使用している場合は、コマンドが生成する ファイルがすでに存在するため、この手順をスキップします。

コントローラーをインポートし、 routes/api.phpファイルにstore()メソッドを呼び出す API ルートを追加します。

use App\Http\Controllers\MovieController;
// ...
Route::resource('movies', MovieController::class)->only([
'store'
]);
3

次のコードに示すように、 app/Modelsディレクトリ内のMovieモデルを更新して、 fill()メソッドが入力するフィールドを指定します。

class Movie extends Model
{
protected $connection = 'mongodb';
protected $fillable = ['title', 'year', 'runtime',
'imdb', 'plot'];
}
4

movie.jsonというファイルを作成し、次のデータを挿入します。

{
"title": "The Laravel MongoDB Quick Start",
"year": 2024,
"runtime": 15,
"imdb": {
"rating": 9.5,
"votes": 1
},
"plot": "This movie entry was created by running through
the Laravel MongoDB Quick Start tutorial."
}

shell で次のコマンドを実行して、JSON ペイロードをPOSTリクエストとしてエンドポイントに送信します。

curl -H "Content-Type: application/json" \
--data @movie.json \
http://localhost:8000/api/movies

はじめにガイドを完了しました。

これらの手順を完了すると、Laravel MongoDB を使用して MongoDB 配置に接続し、サンプル データに対してクエリを実行し、検索した結果をレンダリングする Lambel ウェブ アプリケーションが作成されます。

Laravel-quickstart Githubリポジトリをクローンすることで、ウェブアプリケーションプロジェクトをダウンロードできます。

Tip

Tutorials

Lambda MongoDBアプリケーションでより多くのCRUD機能を実装する方法については、「Lambel MongoDBを使用してバックエンド サービスを構築する」チュートリアルに従ってください。

MongoDBを使用するフルスタックアプリケーションを構築する方法MongoDBは、Youtube

次のリソースから Lambda の MongoDB 機能の詳細を参照してください。

  • MongoDBに接続する : MongoDB接続を構成する方法。

  • データの操作: MongoDBデータの読み取りと書き込み方法を学習します。

  • データのモデル化: Elastic モデル クラスを使用してMongoDBデータを操作します。

  • クエリ ビルダ: クエリ ビルダを使用して MongoDB クエリと集計を指定します。

注意

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

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