Overview
MongoDB Scalaドライバーは、 Java Reactive Streams ドライバーに構築された非同期APIであり、 MongoDBに接続し、配置に保存されているデータを操作するために使用できます。 このガイドでは、 Scalaドライバーを使用してMongoDB AtlasでホストされているMongoDBクラスターに接続し、クラスター内のデータをクエリするアプリケーションを作成する方法について説明します。
Tip
MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。
このガイドに従って、サンプルScalaアプリケーションをMongoDB Atlas配置に接続します。 別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、 公式ドライバーの リストを参照してください。
ダウンロードとインストール
これらの手順を完了すると、ドライバーの依存関係がインストールされた新しいプロジェクトディレクトリが作成されます。
MongoDB 配置の作成
MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。
Atlas に無料のMongoDB配置を作成します。
MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層の MongoDB 配置にロードします。
これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。
接続文字列の作成
MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
Atlas でホストされていないインスタンスまたは配置に接続する方法については、「 接続ターゲットの選択 」ガイドを参照してください。
MongoDB Atlas接続文字列を見つけます。
To retrieve your connection string for the deployment that you created in the previous step, log in to your Atlas account and navigate to the Clusters page under the Database section. Click the Connect button for your new deployment.

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。
Connect to your application セクションの下の Drivers ボタンをクリックし、Driver 選択メニューから「Scala」を選択し、Version 選択メニューからインストールしたバージョンに最適なバージョンを選択します。
接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。
これらの手順を完了すると、Atlas クラスターに対応する接続文字列が作成されます。
MongoDB に接続する
MongoDB Atlas配置用の接続文字列を取得したら、 Scalaアプリケーションから配置に接続し、Atlasサンプルデータセットをクエリできます。
アプリケーションファイルを作成します。
このガイドのダウンロードとインストールのステップで作成した scala-quickstartディレクトリに移動し、src/main/scala/quickstart のネストされたディレクトリを作成します。
オペレーティング システムに対応するタブを選択し、次のコマンドを実行して、quickstart サブディレクトリに Main.scalaファイルを作成します。
cd src/main/scala/quickstart touch Main.scala
cd src/main/scala/quickstart type nul > Main.scala
ヘルパーメソッドを追加します。
Helpers.scalaドライバーのソースコードから次の ファイルをsrc/main/scala/quickstart ディレクトリに追加します。
package quickstart import java.util.concurrent.TimeUnit import scala.concurrent.Await import scala.concurrent.duration.Duration import org.mongodb.scala._ object Helpers { implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] { override val converter: (Document) => String = (doc) => doc.toJson } implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] { override val converter: (C) => String = (doc) => Option(doc).map(_.toString).getOrElse("") } trait ImplicitObservable[C] { val observable: Observable[C] val converter: (C) => String def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS)) def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS)) def printResults(initial: String = ""): Unit = { if (initial.length > 0) print(initial) results().foreach(res => println(converter(res))) } def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}") } }
このファイルを使用すると、クエリ結果を出力するためのヘルパーメソッドにアクセスできます。
アプリケーションコードを追加します。
次のコードをコピーして、 Main.scalaファイルに貼り付けます。このコードは、 sample_mflixデータベース内のmoviesコレクションをクエリします。
package quickstart import org.mongodb.scala._ import org.mongodb.scala.model.Filters._ import Helpers._ object Main { def main(args: Array[String]): Unit = { val mongoClient = MongoClient("<connection string>") val database: MongoDatabase = mongoClient.getDatabase("sample_mflix") val collection: MongoCollection[Document] = database.getCollection("movies") val filter = equal("title", "The Shawshank Redemption") collection.find(filter).printResults() mongoClient.close() } }
接続文字列を割り当てます。
<connection string> プレースホルダーを、このガイドの接続文字列の作成ステップからコピーした接続文字列に置き換えます。
Scalaアプリケーション を実行します。
プロジェクトルートディレクトリで、次のコマンドを実行して sbt シェル を起動し、アプリケーションを実行します。
sbt run
コマンドライン出力には、検索された映画ドキュメントの詳細が含まれます。
{"_id": {"$oid": "..."}, ... , "genres": ["Crime", "Drama"], "rated": "R", "metacritic": 80, "title": "The Shawshank Redemption", ... }
エラーが発生した場合や出力が表示されない場合は、Main.scala ファイルに適切な接続stringが指定されており、サンプル データがロードされていることを確認してください。
Tip
次のコマンドを実行中て、 sbt シェルを終了できます。
exit
これらの手順を完了すると、 MongoDBデプロイに接続し、サンプルデータに対してクエリを実行し、一致するドキュメントを返すScalaアプリケーションが作成されます。
次のステップ
クイック スタート チュートリアルを完了しました。
このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するScalaアプリケーションを作成しました。
Scalaドライバーの詳細については、次のリソースを参照してください。
「データの読み取り」セクションでは、読み取り操作の実行方法を学びます。
「 MongoDB へのデータの書込み」セクションで、書込み操作の実行方法を学びます。
注意
この手順で問題が発生した場合は、このページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。
MongoDB Stack Overflowタグ または MongoDB Reddit Community を使用して、一般的な質問のサポートを見つけることができます。
