Docs Menu
Docs Home
/ / /
Ruby ドライバー
/

接続ターゲットの選択

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

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

  • Atlas クラスターの URL

  • MongoDB ユーザー名

  • MongoDB パスワード

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

Tip

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

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

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

require 'mongo'
# Replace the placeholders with your credentials
uri = "<connection string>"
# Sets the server_api field of the options object to Stable API version 1
options = { server_api: { version: '1' } }
# Creates a new client and connect to the server
client = Mongo::Client.new(uri, options)
# Sends a ping to confirm a successful connection
begin
admin_client = client.use('admin')
result = admin_client.database.command(ping: 1).documents.first
puts "Pinged your deployment. You successfully connected to MongoDB!"
rescue Mongo::Error::OperationFailure => ex
puts ex
ensure
client.close
end

MongoDBデプロイ のスタンドアロンスタンドアロン配置 に接続するには、サーバーのホストを指定します。必要に応じて、接続するサーバーとデータベースのポートを指定します。ポートが指定されていない場合、デフォルトのポートは 27017 です。データベース名が指定されていない場合、クライアントはadminデータベースを使用します。

Mongo::Client.new([ 'host1:27017' ], database: 'mydb')

接続文字列を使用して、接続するホスト、ポート、およびデータベースを指定することもできます。

Mongo::Client.new("mongodb://host1:27017/mydb")

ホストを localhost として指定することもできます。次のコード例では、デフォルトのポート 27017 上の localhost に接続します。

client = Mongo::Client.new(["localhost"])

レプリカセットに接続するには、レプリカセットの一部であるすべてのノードを指定することをお勧めします。 1 つ以上のノードが使用できなくなったイベント、すべてのノードを指定することで、使用可能なノードが1 つである限り、ドライバーはレプリカセットに接続し続けることができます。

ただし、レプリカセット内の任意の 1 つのノードのアドレスをドライバーに渡すには十分です。ノードはプライマリ である必要はなく、 非表示のノードでもかまいません。その後、ドライバーは残りのノードを自動的に検出します。

次の例では、レプリカセットの 3 つのノードを指定する方法を示しています。

Mongo::Client.new([ 'host1:27017', 'host2:27018', `host3:21019` ], database: 'mydb')

次の例は、接続文字列を使用してレプリカセットに接続する方法を示しています。

Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb")

次の例は、replica_set オプションまたは replicaSet接続文字列オプションを使用して、接続時にレプリカセット名を確認する方法を示しています。

Mongo::Client.new([ 'host1:27017', 'host2:27018', 'host3:27019' ],
database: 'mydb', replica_set: 'myapp')
# Or by using a connection string:
Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb?replicaSet=myapp")

注意

Docker のレプリカセット

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

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

Mongo::ClientRubyドライバーを使用して オブジェクトを作成する方法について詳しくは、 Mongo ::Client のAPIドキュメントを参照してください。

戻る

Stable API

項目一覧