Overview
このガイドでは、 MongoDB Rustドライバー を使用してMongoDB AtlasでホストされているMongoDBクラスターに接続するアプリケーションを作成する方法について説明します。別のドライバーまたは プログラミング言語を使用してMongoDBに接続する方法については、 公式ドライバーの リストを参照してください。
Rust ドライバーは、MongoDB に接続して通信するために使用できる関数のライブラリです。
MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。
このガイドの手順に従って、サンプル Rust アプリケーションを MongoDB Atlas 配置に接続します。
ダウンロードとインストール
Rustと MongoDB をインストールします。
開発環境にRust 1.74 以降とRustパッケージマネージャーの Rust がインストールされていることを確認してください。
Rustおよび Cardgo をインストールする方法の詳細については、 Rustのダウンロードとインストールに関するRust の公式ガイドを参照してください。
Rustドライバーをインストールします。
次のクライアントをプロジェクトのCargo.tomlファイルにある依存関係リストに含めて、プロジェクトに追加します。
mongodb、Rust ドライバー crateserde、直列化クローンfutures、コア抽象化を提供する非同期ランタイム crate
Tip
mongodb crate は、MongoDB のプライマリ データ表現クライアントであるbson crate を解決します。 依存関係リストでbson crate を省略できます。
ドライバーは非同期ランタイムと同期ランタイムの両方をサポートしています。 各ランタイムの依存関係リストの例を表示するには、次のAsynchronous API タブとSynchronous API タブから選択します。
[dependencies] serde = "1.0.188" futures = "0.3.28" tokio = {version = "1.32.0", features = ["full"]} [dependencies.mongodb] version = "3.5.2"
[dependencies] serde = "1.0.188" [dependencies.mongodb] version = "3.5.2" features = ["sync"]
非同期ランタイムと同期ランタイムの詳細については、 非同期 API と同期 APIガイドをご覧ください。
これらの手順を完了すると、Rust と Cardgo がインストールされ、必要なドライバーの依存関係を持つ新しい Rust プロジェクトが作成されます。
MongoDB 配置の作成
MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。
Atlas に無料のMongoDB配置を作成します。
MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層の MongoDB 配置にロードします。
これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。
接続文字列の作成
MongoDBデプロイに接続するには、接続 URI(接続文字列とも呼ばれます)を提供します。接続文字列は、 MongoDBデプロイに接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
Atlas でホストされていないインスタンスまたは配置に接続するには、「 MongoDB に接続するその他の方法 」を参照してください。
MongoDB Atlas接続文字列を見つけます。
前のステップで作成した配置の接続文字列を取得するには、Atlas アカウントにログインし、Clusters セクションの下の Database ページに移動します。新しい配置で Connect ボタンをクリックします。

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して構成するように要求します。
Connect to your application の下の [Drivers ボタンをクリックし、Driver 選択メニューから「Rust」を選択し、Version 選択メニューからインストールしたバージョンに最適なバージョンを選択します。
接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。
これらの手順を完了すると、データベースのユーザー名とパスワードを含む接続stringが作成されます。
注意
この手順で問題が発生した場合は、 MongoDB Stack Overflowタグ または 一般的な技術サポートのためのMongoDB Reddit Community を参照してください。また、 接続トラブルシューティングガイドを参照してください。
MongoDB に接続する
Rustアプリケーションを作成します。
rust_quickstart/srcプロジェクトディレクトリ内の main.rs というファイルを開きます。このファイルで、アプリケーションの記述を開始できます。
以下のコードをコピーして、main.rs ファイルに貼り付けます。
use mongodb::{ bson::{Document, doc}, Client, Collection }; async fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string URI>"; // Create a new client and connect to the server let client = Client::with_uri_str(uri).await?; // Get a handle on the movies collection let database = client.database("sample_mflix"); let my_coll: Collection<Document> = database.collection("movies"); // Find a movie based on the title value let my_movie = my_coll.find_one(doc! { "title": "The Perils of Pauline" }).await?; // Print the document println!("Found a movie:\n{:#?}", my_movie); Ok(()) }
use mongodb::{ bson::{Document, doc}, sync::{Client, Collection} }; fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string URI>"; // Create a new client and connect to the server let client = Client::with_uri_str(uri)?; // Get a handle on the movies collection let database = client.database("sample_mflix"); let my_coll: Collection<Document> = database.collection("movies"); // Find a movie based on the title value let my_movie = my_coll .find_one(doc! { "title": "The Perils of Pauline" }) .run()?; // Print the document println!("Found a movie:\n{:#?}", my_movie); Ok(()) }
接続文字列を割り当てます。
<connection string URI> プレースホルダーを、このガイドの接続文字列の作成ステップからコピーした接続文字列に置き換えます。
Rustアプリケーション を実行します。
rust_quickstartプロジェクトディレクトリから、次のコマンドを実行して、このアプリケーションをコンパイルして実行します。
cargo run
コマンドライン出力には、検索された映画ドキュメントの詳細が含まれます。
Found a movie: Some( Document({ "_id": ObjectId(...), "title": String( "The Perils of Pauline", ), "plot": String( "Young Pauline is left a lot of money ...", ), "runtime": Int32( 199, ), "cast": Array([ String( "Pearl White", ), String( "Crane Wilbur", ), ... ]), }), )
エラーが発生した場合や出力が表示されない場合は、main.rs ファイルに適切な接続stringが指定されており、サンプル データがロードされていることを確認してください。
注意
この手順で問題が発生した場合は、 MongoDB Stack Overflowタグ または 一般的な技術サポートのためのMongoDB Reddit Community を参照してください。また、 接続トラブルシューティングガイドを参照してください。
これらの手順を完了すると、ドライバーを使用して MongoDB 配置に接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。
次のステップ
クイック スタート チュートリアルを完了しました。
このチュートリアルでは、MongoDB Atlas でホストされている MongoDB 配置に接続し、クエリに一致するドキュメントを検索する Rust アプリケーションを作成しました。
MongoDB Rust ドライバーの詳細については、次のリソースを参照してください。
「 CRUD 操作 」セクションでは、読み取りおよび書込み (write) 操作を実行する方法について説明します。
「Rockt で CRUD Web アプリを使用してCRUDウェブアプリを作成する」チュートリアルで、 CRUD の概念を適用して Rocket でシンプルなウェブアプリを作成する方法について学びます。
