Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Kotlin Sync ドライバー
/

接続ターゲットの選択

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

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

  • Atlas クラスターの URL

  • MongoDBデータベース のユーザー名

  • MongoDBデータベース のパスワード

次に、接続stringを MongoClient コンストラクターに渡します。

Tip

接続 Atlasを取得するには、 ドライバー接続ガイドstring に従ってください。

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

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

// Defines Stable API version
val serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build()
// Uses MongoClientSettings to apply connection string and specify the Stable API version
val settings = MongoClientSettings.builder()
.applyConnectionString("<connection string URI>")
.serverApi(serverApi)
.build()
val mongoClient = MongoClient.create(settings)

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

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

val settings = MongoClientSettings.builder()
.applyConnectionString("mongodb://localhost:27017")
.build()
val mongoClient = MongoClient.create(settings)

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

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

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

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

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

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

val mongoClient = MongoClient.create("mongodb://host1:27017,host2:27017,host3:27017/")
val hosts = listOf(
ServerAddress("host1", 27017),
ServerAddress("host2", 27017),
ServerAddress("host3", 27017)
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(hosts)
}
.build()
val mongoClient = MongoClient.create(settings)

注意

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

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

DNS サービス検出を使用して接続しているサービスの DNS SRVレコードを検索するには、接続文字列で SRV 接続形式を指定します。 この形式を指定すると、 Kotlin Syncドライバーは新しいホストの自動的に再スキャンを行います。配置により、クライアント構成を変更しなくても、トポロジーにホストを追加できます。

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

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

SRV 接続形式の詳細については、 MongoDB Serverマニュアルの「 SRV 接続形式 」のエントリを参照してください。

戻る

MongoClient の作成

項目一覧