1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NestJSを使用してMongoDB Atlasに接続する方法

Last updated at Posted at 2023-09-20

前提

この記事では、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.ts
    const 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.ts
    import { 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 {}
    

自らの備忘録のために投稿してますが、なにかお役に立てましたら幸いです!:clap:
また、なにか間違ってましたらご指摘いただけますと幸いです!:pray:

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?