Overview
このガイドでは、接続文字列と Clientインスタンスを使用してさまざまなタイプのMongoDB配置に接続する方法を説明します。
Atlas 配置への接続
MongoDBAtlas上の 配置に接続するには、 接続string に次の要素を含めます。
Atlas クラスターの URL
MongoDB ユーザー名
MongoDB パスワード
次に、接続文字列を使用して Clientインスタンスを構築します。
Tip
接続 Atlasを取得するには、 ドライバー接続ガイドstring に従ってください。
Atlas に接続するときは、Atlas がMongoDB Serverの新しいバージョンにアップグレードするときに重大な変更を回避するために、 Stable APIクライアントオプションを使用することをお勧めします。 Stable API機能について詳しくは、 Stable APIガイドをご覧ください。
次のコードは、 Atlas接続stringとStable APIバージョンを使用するクライアントを作成し、 MongoDBに接続して、接続が成功したことを確認する方法を示しています。 対応する接続コード サンプルについては、以下の Asynchronous APIまたはSynchronous APIタブから選択します。
Tip
非同期ランタイムと同期ランタイムの詳細については、「非同期 API と同期 APIガイド 」を参照してください。
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, Client }; async fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).await?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, sync::Client }; fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).run()?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).run()?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
MongoDB に接続する他の方法
Atlas でホストされていない単一の MongoDB サーバー インスタンスまたはレプリカセットに接続する必要がある場合は、次のセクションで接続方法を確認してください。
ローカルマシン上の MongoDB Server への接続
開発目的でローカルマシン上で MongoDB Server を実行する必要がある場合は、次の手順を完了する必要があります。
「 MongoDB のインストール」チュートリアルに従って、マシンに MongoDB Server をインストールします。 マシンとオペレーティング システムに適したインストール チュートリアルを選択します。
インストールが完了したら、サーバーを起動します。
重要
サーバーを悪意のある攻撃から常に保護します。 セキュリティ推奨事項のリストについては、「セキュリティ チェックリスト」を参照してください。
MongoDB Server を正常に開始したら、次の手順を実行してローカル インスタンスに接続します。
前の例 string
uriの 変数に保存されている接続string MongoDBを、ローカル インスタンスの接続 に置き換えます。MongoDB Serverがローカルで実行されている場合は、次の接続stringを使用してMongoDBに接続できます。
mongodb://localhost:<port> この 接続stringで、
<port>は、着信接続をリッスンするようにサーバーを設定したポート番号です。接続コードを実行します。 コードが正常に実行されると、コンソールに次の出力が表示されます。
Pinged your deployment. You successfully connected to MongoDB!
Tip
接続文字列とカスタム形式の詳細については、サーバー マニュアルの「接続文字列 」を参照してください。
レプリカセットへの接続
MongoDB レプリカセットの配置は、接続されたインスタンス、つまりノードのグループであり、ノードは同じデータ セットを保存します。 このインスタンスの構成は、データの冗長性と高いデータ可用性を提供します。
レプリカセットの配置に接続するには、各インスタンスのホスト名とポート番号をカンマで区切って指定し、レプリカセット名を接続文字列の replicaSet パラメーターの値として指定します。
次の例では、ホスト名はhost1 、 host2 、 host3で、ポート番号はすべて27017です。 レプリカセット名はmyRSです。 次のコードは、これらの仕様を持つレプリカセットの接続 URI を示しています。
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS
レプリカセットに接続すると、ドライバーはデフォルトで次のアクションを実行します。
いずれかのノードのアドレスが指定されると、レプリカセットのすべてのノードを検出します。
プライマリノードに対する書込み指示などの操作を適切なメンバーに送信します。 レプリカセット プライマリの詳細については、サーバー マニュアルの「レプリカセット プライマリ」を参照してください。
Tip
レプリカセットに接続するには、1 つのホストのみを指定する必要があります。 ただし、指定したホストが利用できない場合でも接続できるようにするには、ホストの全リストを提供します。
直接接続
接続 URI で指定されたホストで操作を強制するには、 directConnectionオプションを指定します。 直接接続では、次の動作が表示されます。
SRV string はサポートされていません。
指定されたホストがプライマリでない場合、書き込みは失敗します。
指定されたホストがプライマリでない場合は、セカンダリに読み込み設定 (read preference) を指定する必要があります。 これらのレプリカセット ノードの詳細については、サーバー マニュアルの「レプリカセットのセカンダリ ノード」を参照してください。
注意
Docker のレプリカセット
レプリカセットがDockerで実行される場合、公開されるMongoDBエンドポイントは 1 つだけです。この場合、レプリカセットは検出できません。接続 URI で directConnection=false を指定するか、このオプションを未設定のままにすると、アプリケーションがその接続に接続できなくなる可能性があります。
テスト環境または開発環境では、directConnection=true を指定してレプリカセットに接続できます。本番環境では、Docker 仮想ネットワークの外部から各 MongoDB インスタンスにアクセスできるようにクラスターを構成することを推奨します。
DNS サービス検出を使用した接続
DNS サービス検出を使用して接続しているサービスの DNS SRVレコードを検索するには、接続文字列で SRV 接続形式を指定します。この形式を指定すると、 Rustドライバーは新しいホストを自動的に再スキャンします。配置により、クライアント構成を変更しなくても、トポロジーにホストを追加できます。
次のコードは、 SRV 接続形式を使用する接続文字列を示しています。
let uri = "mongodb+srv://<hostname>/";
SRV 接続形式の詳細については、 MongoDB Serverマニュアルの「 SRV 接続形式 」のエントリを参照してください。
API ドキュメント
ClientRustドライバーを使用して インスタンスを作成する方法の詳細については、 クライアント用のAPIドキュメントを参照してください。