前提
この記事では、NestJSをバックエンドに使用してMongoDB Atlasに接続する方法を解説します。MongoDB AtlasはMongoDB Inc.によって提供されるクラウドベースのデータベースサービスです。このサービスを使用すると、簡単かつ迅速にMongoDBデータベースをセットアップし、管理できます。
実装
-
MongoDB AtlasのエンドポイントはmongodbConfigのように設定します。MongoDB AtlasのエンドポイントはMongoDB Atlasの任意のプロジェクトを選択し「DEPLOYMENT」「Database」から、任意のクラスターの「Connect」ボタンをクリックし、Drivers経由で接続すると表示・取得できますが、実際に使用する際はデータベース名まで指定する必要があります。以下の環境変数を設定ファイル(例:.env)やECSタスク定義などを使用して設定します。
- MONGO_USER: MongoDBのユーザー
- MONGO_PASSWORD: MongoDBのパスワード
- MONGO_HOST: MongoDBのホスト
- MONGO_DATABASE: MongoDBのデータベース名
mongodb.config.tsconst mongodbConfig = process.env.NODE_ENV === 'production' ? `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@${process.env.MONGO_HOST}${process.env.MONGO_DATABASE}?authMechanism=DEFAULT&authSource=admin` : `mongodb://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@${process.env.MONGO_HOST}:${process.env.MONGO_PORT}/${process.env.MONGO_DATABASE}?authMechanism=DEFAULT&authSource=admin`; export default mongodbConfig;
-
ConfigModule: 環境変数をアプリケーション全体で利用できるようにするモジュールです。forRootメソッドを使用して、環境変数の設定を行います。
-
MongooseModule: NestJSでMongoDBとの接続を簡単に行うためのモジュールです。forRootメソッドを使用して、MongoDBへの接続設定を行います。
app.module.tsimport { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { MongooseModule } from '@nestjs/mongoose'; import mongodbConfig from '@/config/mongodb.config'; @Module({ imports: [ ConfigModule.forRoot({ envFilePath: ['.env'], isGlobal: true, }), MongooseModule.forRoot(mongodbConfig), ], }) export class AppModule {}
自らの備忘録のために投稿してますが、なにかお役に立てましたら幸いです!
また、なにか間違ってましたらご指摘いただけますと幸いです!