Docs Menu
Docs Home
/ / /
Kotlin コルーチン

Kotlin ドライバー クイック スタート

項目一覧

  • はじめに
  • プロジェクトを設定する
  • Install Kotlin
  • プロジェクトを作成する
  • MongoDB を依存関係として追加する
  • 直列化ライブラリの依存関係を追加する
  • MongoDB クラスターを作成する
  • クラスターに接続する
  • アプリケーションから MongoDB クラスターをクエリする
  • ドキュメントクラスの操作(代替手段)
  • 次のステップ

このガイドでは、 Kotlin ドライバーを使用してMongoDB Atlas clusterに接続するアプリケーションを作成する方法について説明します。 別のドライバーまたはプログラミング言語を使用して MongoDB に接続する場合は、 公式 MongoDB ドライバーリストを参照してください。

Kotlin ドライバーを使用すると、 Kotlin アプリケーションから MongoDB クラスターに接続して通信できます。

MongoDB Atlas は、MongoDB クラスターでデータをホストするフルマネージドクラウドデータベース サービスです。 このガイドでは、独自の無料クラスターを開始する方法を学習できます。

Tip

MongoDB Atlas に接続する Kotlin でアプリケーションを構築する方法を示す別の例については、 「 MongoDB Kotlin ドライバーを使い始める 」の開発者チュートリアルを参照してください。

システムにKotlinがインストールされ、JDK1.8 以降で実行中されていることを確認します。 Kotlin/ JVM開発の開始の詳細については、 Kotlin言語ドキュメントの「 Kotlin/ JVM を使い始める 」を参照してください。

このガイドでは、 Gradle または Maven を使用して MongoDB Kotlin ドライバーの依存関係を追加する方法を示します。 IntelliJ IDEA などの統合開発環境(IDE)の使用をお勧めします。または Eclipse IDE を使用して、 Gradle または Maven を構成し、プロジェクトをビルドおよび実行することをお勧めします。

IDE を使用していない場合は、「 新しい Gradle ビルドの作成 」を 参照してください ガイドまたは Build Maven プロジェクトをセットアップする方法の詳細については、 ガイドを参照してください。

Gradle を使用している場合 パッケージを管理するには、次のエントリをbuild.gradle.kts 依存関係リストに追加します。

build. Gradle.kts
dependencies {
implementation("org.mongodb:mongodb-driver-kotlin-coroutine:5.3.0")
}

Maven を使用している場合 パッケージを管理するには、次のエントリをpom.xml 依存関係リストに追加します。

pom.xml
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-kotlin-coroutine</artifactId>
<version>5.3.0</version>
</dependency>
</dependencies>

依存関係を構成したら、依存関係マネージャーを実行し、IDE でプロジェクトを更新して、依存関係がプロジェクトで使用できることを確認します。

ドライバーで Kotlin オブジェクトと MongoDB のドキュメントのデータ形式である BSON の間で変換できるようにするには、次の直列化パッケージの 1 つまたは両方をアプリケーションに追加する必要があります。

  • bson-kotlinx (推奨)

  • bson-kotlin

Gradle を使用してパッケージを管理している場合は、次のいずれかのエントリをbuild.gradle.kts依存関係リストに追加します。

build. Gradle.kts
implementation("org.mongodb:bson-kotlinx:5.3.0")
// OR
implementation("org.mongodb:bson-kotlin:5.3.0")

Maven を使用してパッケージを管理している場合は、次のいずれかのエントリをpom.xml依存関係リストに追加します。

pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson-kotlinx</artifactId>
<version>5.3.0</version>
</dependency>
<!--OR-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson-kotlin</artifactId>
<version>5.3.0</version>
</dependency>

依存関係を構成したら、依存関係マネージャーを実行し、IDE でプロジェクトを更新して、依存関係がプロジェクトで使用できることを確認します。

これらのパッケージの詳細については、 Kotlin 直列化 を参照してください。

Kotlin プロジェクトの依存関係を設定したら、データを保存および管理できる MongoDB クラスターを作成します。 「 Atlas を使い始める 」チュートリアルを完了して、新しい Atlas アカウントを設定し、無料レベルの MongoDB クラスターを作成して起動し、サンプル データセットをロードします。

「 Atlas を使い始める 」チュートリアルの手順を完了すると、Atlas に新しい MongoDB クラスターが配置され、新しいデータベースユーザーが作成され、クラスターに サンプル データがロードされます 。

この手順では、 Kotlin ドライバー を使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行するアプリケーションを作成して実行する方法を示します。

まず、コードに 接続 を含めて、ドライバーがMongoDB stringクラスターに接続する方法を指定する必要があります。この string には、クラスターのホスト名または IP アドレスとポート、認証メカニズム、ユーザー認証情報、およびその他の接続オプションに関する情報が含まれます。

でホストされていないインスタンスまたはクラスターに接続する場合は、Atlas 接続 の形式方法については、 接続ガイド の「 に接続するその他の方法MongoDBstring 」セクションを参照してください。

string前のステップで作成したクラスターとユーザーの接続Atlas を取得するには、Database アカウントにログインして「配置」の下の {0Connect ページに移動し、 に表示されているクラスターの ボタンをクリックします。以下の画像。

Atlas Connection GUI クラスター選択画面

接続にDriversオプションを選択し、ドライバーのリストから [ Kotlin ] を選択し、バージョン ドロップダウンから [ 4.10 or later ] を選択します。

次に、次の画像で強調表示されている Copy アイコンをクリックして、接続stringをクリップボードにコピーします。

Atlas Connection GUI 接続文字列画面

Atlas 接続文字列を安全な場所に保存し、次の手順でアクセスできます。

次に、プロジェクトにQuickStartDataClassExample.ktというファイルを作成します。

次のサンプル コードを ファイルにコピーし、uri 変数の値を前の手順で保存したMongoDB Atlas接続stringに置き換えます。 接続stringの "<password>" プレースホルダーを、 atlasAdmin権限を持つユーザーに設定したパスワードに置き換えます。

QuickStartDataClassExample.kt
import com.mongodb.client.model.Filters.eq
import com.mongodb.kotlin.client.coroutine.MongoClient
import io.github.cdimascio.dotenv.dotenv
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.runBlocking
// Create data class to represent a MongoDB document
data class Movie(val title: String, val year: Int, val cast: List<String>)
fun main() {
// Replace the placeholder with your MongoDB deployment's connection string
val uri = CONNECTION_STRING_URI_PLACEHOLDER
val mongoClient = MongoClient.create(uri)
val database = mongoClient.getDatabase("sample_mflix")
// Get a collection of documents of type Movie
val collection = database.getCollection<Movie>("movies")
runBlocking {
val doc = collection.find(eq("title", "Back to the Future")).firstOrNull()
if (doc != null) {
println(doc)
} else {
println("No matching documents found.")
}
}
mongoClient.close()
}

注意

この例では、 Kotlin データ クラスを使用して MongoDB データをモデル化します。

main関数を実行すると、アプリケーションは次の出力に示すように、クエリに一致する映画ドキュメントの詳細を出力します。

Movie(
title=Back to the Future,
year=1985,
cast=[Michael J. Fox, Christopher Lloyd, Lea Thompson, Crispin Glover]
)

Tip

データクラス

データクラスを使用してデータを保存および検索する方法の詳細については、「ドキュメント データ形式: データ クラス 」のガイドを参照してください。

出力が表示されない場合やエラーが表示される場合は、アプリケーションに適切な接続stringが含まれているかどうかを確認してください。 また、サンプル データセットが MongoDB Atlas クラスターに正常にロードされたことを確認してください。

重要

TLS v1.3 を使用する場合の既知の接続の問題

MongoDB インスタンスへの接続中に次のエラーが発生した場合は、JDK を最新のパッチ リリースに更新する必要があります。

javax.net.ssl.SSLHandshakeException: extension (5) should not be presented in certificate_request

この例外は、特定のバージョンの JDK で TLS 1.3 プロトコルを使用する場合の既知の問題ですが、この問題は次の JDK バージョンで修正されています。

  • JDK 11.0.7

  • JDK 13.0.3

  • JDK 14.0.2

このエラーを解決するには、JDK を以前のパッチ バージョンまたはそれ以降のバージョンに更新します。

この手順を完了すると、 Kotlin ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。

前のセクションでは、 Kotlin データ クラスを使用してサンプル コレクションに対してクエリを実行し、データを取得する方法を示します。 このセクションでは、 ドキュメント を使用する方法を示します MongoDB からデータを保存および検索するためのクラス。

QuickStartDocumentExample.ktという新しいファイルに、次のサンプル コードを貼り付けて、MongoDB Atlas のサンプル データセットに対してクエリを実行します。 uri 変数の値をMongoDB Atlas接続stringに置き換えます。

QuickStartDocumentExample.kt
import com.mongodb.client.model.Filters.eq
import com.mongodb.kotlin.client.coroutine.MongoClient
import io.github.cdimascio.dotenv.dotenv
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.runBlocking
import org.bson.Document
fun main() {
// Replace the placeholder with your MongoDB deployment's connection string
val uri = CONNECTION_STRING_URI_PLACEHOLDER
val mongoClient = MongoClient.create(uri)
val database = mongoClient.getDatabase("sample_mflix")
val collection = database.getCollection<Document>("movies")
runBlocking {
val doc = collection.find(eq("title", "Back to the Future")).firstOrNull()
if (doc != null) {
println(doc.toJson())
} else {
println("No matching documents found.")
}
}
mongoClient.close()
}

main関数を実行すると、アプリケーションは次の出力に示すように、クエリに一致する映画ドキュメントの詳細を出力します。

{
_id: ...,
plot: 'A young man is accidentally sent 30 years into the past...',
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ],
...
title: 'Back to the Future',
...
}

出力が表示されない場合やエラーが表示される場合は、アプリケーションに適切な接続stringが含まれているかどうかを確認してください。 また、サンプル データセットが MongoDB Atlas クラスターに正常にロードされたことを確認してください。

Kotlin ドライバーの詳細については、「基礎」ガイドを参照してください。このガイドでは、関連する概念を詳しく説明し、さまざまなタスクを実行するためのコード例を紹介しています。

戻る

MongoDB Kotlin ドライバー