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

Scalaドライバーを使い始める

項目一覧

  • Overview
  • ダウンロードとインストール
  • 依存関係のインストール
  • プロジェクト ディレクトリの作成
  • Scalaドライバーを使用するようにプロジェクトを構成する
  • MongoDB 配置の作成
  • Atlas で無料の MongoDB 配置を作成
  • 認証情報を保存する
  • 接続文字列の作成
  • MongoDB Atlas 接続文字列を見つける
  • 接続stringのコピー
  • プレースホルダーを更新します
  • MongoDB に接続する
  • アプリケーションファイルを作成
  • ヘルパーメソッドを追加する
  • アプリケーションコードを追加する
  • 接続文字列の割り当て
  • Scalaアプリケーションの実行
  • 次のステップ

MongoDB Scalaドライバーは、 Java Reactive Streams ドライバーに構築された非同期APIであり、 MongoDBに接続し、配置に保存されているデータを操作するために使用できます。 このガイドでは、 Scalaドライバーを使用してMongoDB AtlasでホストされているMongoDBクラスターに接続し、クラスター内のデータをクエリするアプリケーションを作成する方法について説明します。

Tip

MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。

このガイドに従って、サンプルScalaアプリケーションをMongoDB Atlas配置に接続します。 別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、 公式ドライバーの リストを参照してください。

1

開発を行う前に、開発環境に次の依存関係がインストールされていることを確認してください。

2

シェルで次のコマンドを実行して、このプロジェクト用に scala-quickstart というディレクトリを作成します。

mkdir scala-quickstart

オペレーティング システムに対応するタブを選択し、次のコマンドを実行して、scala-quickstartディレクトリに build.sbtファイルを作成します。

cd scala-quickstart
touch build.sbt
cd scala-quickstart
type nul > build.sbt
3

build.sbtファイルに移動し、次のコードを追加して、アプリケーションでScalaドライバーを使用します。

ThisBuild / scalaVersion := "2.13.16"
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "5.4.0"

このコードは、 Scalaバージョン 2.13.16 とScalaドライバー バージョン 5.4.0 を使用するようにアプリケーションを構成します。

これらの手順を完了すると、ドライバーの依存関係がインストールされた新しいプロジェクトディレクトリが作成されます。

MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。

1

Atlas の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプル データを新しい無料階層 MongoDB 配置にロードします。

2

データベースユーザーを作成したら、そのユーザーのユーザー名とパスワードを安全な場所に保存して、後の手順で使用します。

これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。

MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。

接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。

Atlas でホストされていないインスタンスまたは配置に接続する方法については、「 接続ターゲットの選択 」ガイドを参照してください。

1

前のステップ で作成した配置の接続文字列を取得するには、Atlas アカウントにログしてDatabase Connectセクションに移動し、新しい配置の [] ボタンをクリックします。

Atlas UI のクラスター セクションの接続ボタン

次に、Connect to your application ヘッダーの下の Drivers オプションを選択します。 Driver 選択メニューから「Scala」を選択し、Version 選択メニューからインストールしたバージョンに最適なバージョンを選択します。

2

次のスクリーンショットに示すように、接続文字列の右側にある ボタンをクリックして、接続stringをクリップボードにコピーします。

UIの接続 の横にあるコピーボタンstringAtlas
3

この接続stringをテキストエディタのファイルに貼り付け、<db_username><db_password> のプレースホルダーをデータベースユーザーのユーザー名とパスワードに置き換えます。

このファイルを安全な場所に保存して、次の手順で使用します。

これらの手順を完了すると、Atlas クラスターに対応する接続文字列が作成されます。

MongoDB Atlas配置用の接続文字列を取得したら、 Scalaアプリケーションから配置に接続し、Atlasサンプルデータセットをクエリできます。

1

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
2

ドライバーのソースコードから次の 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())}")
}
}

このファイルを使用すると、クエリ結果を出力するためのヘルパーメソッドにアクセスできます。

3

次のコードをコピーして、 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()
}
}
4

<connection string> プレースホルダーを、このガイドの接続文字列の作成ステップからコピーした接続文字列に置き換えます。

5

プロジェクトルートディレクトリで、次のコマンドを実行して 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 Community フォーラムでサポートを依頼するか、このページの右側または右下にある Rate this page タブを使用してフィードバックを送信してください。

戻る

MongoDB Scalaドライバー