接続ターゲットの選択
Overview
このガイドでは、接続string とMongoClient
{0 オブジェクトを使用して、さまざまなタイプのMongoDB 配置に接続する方法を説明します。
Atlas
MongoDBAtlas上の 配置に接続するには、 接続string に次の要素を含めます。
Atlas クラスターの URL
MongoDB のユーザー名
MongoDB パスワード
次に、接続stringを MongoClient
コンストラクターに渡します。
Tip
接続 Atlasを取得するには、 ドライバー接続ガイドstring に従ってください。
Atlas に接続するときは、Atlas が MongoDB Server の新しいバージョンにアップグレードするときに重大な変更を回避するために、 Stable API クライアント オプションを使用することをお勧めします。 Stable API 機能について詳しくは、 Stable APIガイドをご覧ください。
次のコードは、 Scalaドライバーを使用して Atlas クラスターに接続する方法を示しています。このコードでは、Stable APIバージョンを指定するために serverApi()
メソッドも使用されます。
object MongoClientConnectToAtlas { def main(args: Array[String]): Unit = { // Replace the placeholder with your Atlas connection string val connectionString = "<connection string>"; // Constructs a ServerApi instance using the ServerApi.builder() method val serverApi = ServerApi.builder.version(ServerApiVersion.V1).build() val settings = MongoClientSettings .builder() .applyConnectionString(ConnectionString(connectionString)) .serverApi(serverApi) .build() // Creates a new client and connects to the server Using(MongoClient(settings)) { mongoClient => // Sends a ping to confirm a successful connection val database = mongoClient.getDatabase("admin") val ping = database.runCommand(Document("ping" -> 1)).head() Await.result(ping, 10.seconds) System.out.println("Pinged your deployment. You successfully connected to MongoDB!") } } }
ローカル配置
MongoDB のローカル配置には次の方法で接続できます。
ポート
27017
のlocalhost
で実行中MongoDBサーバーに接続するために、 パラメータなしでMongoClient
オブジェクトをインスタンス化します。val mongoClient = MongoClient() ポート
27017
の指定されたホストで実行されている MongoDB インスタンスに接続するには、hostname
を明示的に指定します。val mongoClient = MongoClient("mongodb://host1") hostname
とport
を明示的に指定します。val mongoClient = MongoClient("mongodb://host1:27017")
レプリカセット
レプリカセットに接続するには、レプリカセットのノードのホスト名(またはIPアドレス)とポート番号を指定します。
レプリカセット内のホストの完全なリストを提供できない場合は、レプリカセット内の 1 つ以上のホストを指定し、 Scalaドライバーに自動検出を実行して他のホストを検索するように指示できます。ドライバーに自動検出を実行するように指示するには、次のいずれかのアクションを実行します。
replicaSet
パラメーターの値としてレプリカセットの名前を指定します。directConnection
パラメーターの値としてfalse
を指定します。レプリカセットに複数のホストを指定します。
MongoDBレプリカセットに接続するには、ConnectionString
でノードを指定します。次の例では、レプリカセットの 3 つのノードを指定する方法を示しています。
val mongoClient = MongoClient("mongodb://host1:27017,host2:27017,host3:27017")
次の例は、レプリカセットのメンバーと、レプリカセット名とともにreplicaSet
オプションを指定する方法を示しています。
val mongoClient = MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet")
次の例は、すべてのレプリカセット メンバーに対応するServerAddress
インスタンスのリストを指定する方法を示しています。
val mongoClient = MongoClient( MongoClientSettings.builder() .applyToClusterSettings((builder: ClusterSettings.Builder) => builder.hosts(List( new ServerAddress("host1", 27017), new ServerAddress("host2", 27017), new ServerAddress("host3", 27017)).asJava)) .build())
注意
MongoClient
コンストラクターは非ブロッキングです。 レプリカセットに接続すると、クライアントがバックグラウンド スレッドを使用してレプリカセットに接続している間に、コンストラクターはすぐに返します。
MongoClient
を作成し、そのnodes
属性の string 表現をすぐに出力すると、クライアントがレプリカセット メンバーに接続している間はリストが空になることがあります。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。