Rust プログラムから MongoDB にアクセスするには、mongodb
クレート を使用します。
各種クレートのインストール
cargo add
コマンドを使って、次のようなクレートをインストールします。
mongodb
… MongoDB を扱うためのクレートserde
… MongoDB 内の BSON データと Rust の struct を相互変換(シリアライズ/デシリアライズ)するためのクレートtokio
… Rust の async 処理用のランタイム実装を提供するクレートfutures
… TryStream と呼ばれる非同期ストリームを操作するための拡張メソッドを使うため(サンプルコード内のcursor.try_next()
の部分に必要)
# (必要に応じて)プロジェクトの作成
$ cargo new myapp
$ cd myapp
# クレートのインストール
$ cargo add mongodb serde tokio futures
Cargo.toml
に次のような感じで依存関係が追加されていれば準備 OK です。
MongoDB サーバーの準備
接続先の MongoDB サーバーはローカルで起動しておくか、MongoDB Atlas などのクラウドサービスで用意しておいてください。
以下の説明では、localhost:27017
で MongoDB サーバーが稼働していることを想定しています。
サンプルコード
データベースの一覧を取得する
下記のコードは、MongoDB サーバーに接続して、データベースの一覧を列挙する例です。
コレクション内のドキュメント操作
次の例では、mydb
データベース内の books
コレクションにドキュメントをいくつか追加し、それらを取り出しています。
ここでは、各ドキュメントを表現する struct
として Book
型を定義しています。