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

接続ターゲットの選択

このガイドでは、接続stringと MongoClient オブジェクトを使用して、さまざまなタイプのMongoDB配置に接続する方法を説明します。

MongoDBAtlas上の 配置に接続するには、 接続string に次の要素を含めます。

  • Atlas クラスターの URL

  • MongoDB ユーザー名

  • MongoDB パスワード

次に、接続文字列をMongoClient.create() メソッドに渡します。

Tip

Follow the Atlas driver connection guide to retrieve your connection string.

Atlas に接続するときは、Atlas がMongoDBサーバーの新しいバージョンにアップグレードするときに重大な変更を回避するために、 Stable APIクライアントオプションを使用することをお勧めします。Stable API機能について詳しくは、「 Stable API 」ページをご覧ください。

次のコードは、 Kotlinドライバー を使用して Atlas クラスターに接続する方法を示しています。このコードでは、Stable APIバージョンを指定するために serverApi オプションも使用されています。

// Replace the placeholder with your Atlas connection string
val uri = "<connection string>"
// Construct a ServerApi instance using the ServerApi.builder() method
val serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.serverApi(serverApi)
.build()
// Create a new client and connect to the server
val mongoClient = MongoClient.create(settings)
val database = mongoClient.getDatabase("admin")
try {
// Send a ping to confirm a successful connection
val command = Document("ping", BsonInt64(1))
val commandResult = database.runCommand(command)
println("Pinged your deployment. You successfully connected to MongoDB!")
} catch (me: MongoException) {
System.err.println(me)
}

MongoDB のローカル配置に接続するには、ホスト名としてlocalhostを使用します。 デフォルトでは、 mongodプロセスはポート27017で実行されますが、これは配置に合わせてカスタマイズできます。

次のコードは、 Kotlinドライバー を使用してローカルMongoDB配置に接続する方法を示しています。

import com.mongodb.kotlin.client.coroutine.MongoClient
val uri = "mongodb://localhost:27017/"
val client = MongoClient.create(uri)

MongoDB レプリカセットの配置は、同じデータ セットを保存する接続されたインスタンスのグループです。このインスタンスの構成は、データの冗長性と高いデータ可用性を提供します。

レプリカセットに接続するには、レプリカセットのノードのホスト名(または IP アドレス)とポート番号を指定します。

レプリカセット内のホストの完全なリストを提供できない場合は、レプリカセット内の 1 つ以上のホストを指定し、 Kotlinドライバーに自動検出を実行して他のホストを検索するように指示できます。ドライバーに自動検出を実行するように指示するには、次のいずれかのアクションを実行します。

  • replicaSet パラメーターの値としてレプリカセットの名前を指定します。

  • directConnection パラメーターの値として false を指定します。

  • レプリカセットに複数のホストを指定します。

注意

MongoClientコンストラクターは非ブロッキングです。 レプリカセットに接続すると、クライアントがバックグラウンド スレッドを使用してレプリカセットに接続している間に、コンストラクターはすぐに返します。

MongoClientを作成し、そのnodes属性の string 表現をすぐに出力すると、クライアントがレプリカセット メンバーに接続している間はリストが空になることがあります。

次の例は、 クラスまたは27017 クラスのいずれかを使用して、3 つの異なるホストのポート で実行されている MongoDBConnectionString MongoClientSettingsレプリカセットに接続する方法を示しています。使用するクラスに対応するタブを選択します。

val connectionString = ConnectionString("mongodb://host1:27017,host2:27017,host3:27017/")
val mongoClient = MongoClient.create(connectionString)

注意

Docker のレプリカセット

レプリカセットがDockerで実行される場合、公開されるMongoDBエンドポイントは 1 つだけです。この場合、レプリカセットは検出できません。接続 URI で directConnection=false を指定するか、このオプションを未設定のままにすると、アプリケーションがその接続に接続できなくなる可能性があります。

テスト環境または開発環境では、directConnection=true を指定してレプリカセットに接続できます。本番環境では、Docker 仮想ネットワークの外部から各 MongoDB インスタンスにアクセスできるようにクラスターを構成することを推奨します。

DNS サービス検出を使用して接続しているサービスの DNS SRVレコードを検索するには、接続文字列で SRV 接続形式を指定します。さらに、 SRV 接続形式 を有効にすると、 Kotlinドライバーはクライアント構成を変更しなくても、新しいホストの自動的に再スキャンを行います。

次のコードは、 SRV 接続形式を使用する接続文字列を示しています。

val uri = "mongodb+srv://<hostname>/"

To learn more about the SRV connection format, see the SRV Connection Format entry in the MongoDB server manual.

Kotlinドライバーで MongoClientオブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。