JavaScriptとMongoDBを使用してデータベースに接続する
データベースに接続するには、Prismaスキーマのdatasourceブロックのurlフィールドをデータベースの接続URLに設定する必要があります。
prisma/schema.prisma
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
この場合、urlは、.envで定義されている環境変数経由で設定されます(例ではMongoDB AtlasのURLを使用しています)。
.env
DATABASE_URL="mongodb+srv://test:test@cluster0.ns1yp.mongodb.net/myFirstDatabase"
これで、接続URLを自分のデータベースを指すように調整する必要があります。
データベースの接続URLの形式は、使用するデータベースによって異なります。MongoDBの場合、以下のようになります(すべて大文字で書かれた部分は、特定の接続詳細のプレースホルダーです)。
mongodb://USERNAME:PASSWORD@HOST:PORT/DATABASE
各コンポーネントの簡単な説明を以下に示します。
USERNAME: データベースユーザーの名前PASSWORD: データベースユーザーのパスワードHOST:mongod(またはmongos)インスタンスが実行されているホストPORT: データベースサーバーが実行されているポート(MongoDBの場合、通常27017)DATABASE: データベースの名前。MongoDB Atlasを使用している場合、MongoDB Atlasの環境リンクにはデータベース名が含まれていないため、接続URLにデータベース名を手動で追加する必要があることに注意してください。
トラブルシューティング
Error in connector: SCRAM failure: Authentication failed.
Error in connector: SCRAM failure: Authentication failed.というエラーメッセージが表示される場合、接続文字列の末尾に?authSource=adminを追加することで、認証用のソースデータベースを指定できます。
Raw query failed. Error code 8000 (AtlasError): empty database name not allowed.
Raw query failed. Code: unknown. Message: Kind: Command failed: Error code 8000 (AtlasError): empty database name not allowed.というエラーメッセージが表示される場合、データベースURLにデータベース名を必ず追加してください。詳細については、このGitHubのイシューを参照してください。