Kotlin ドライバー クイック スタート
項目一覧
はじめに
このガイドでは、 Kotlin ドライバーを使用してMongoDB Atlas clusterに接続するアプリケーションを作成する方法について説明します。 別のドライバーまたはプログラミング言語を使用して MongoDB に接続する場合は、 公式 MongoDB ドライバーのリストを参照してください。
Kotlin ドライバーを使用すると、 Kotlin アプリケーションから MongoDB クラスターに接続して通信できます。
MongoDB Atlas は、MongoDB クラスターでデータをホストするフルマネージドクラウドデータベース サービスです。 このガイドでは、独自の無料クラスターを開始する方法を学習できます。
Tip
MongoDB Atlas に接続する Kotlin でアプリケーションを構築する方法を示す別の例については、 「 MongoDB Kotlin ドライバーを使い始める 」の開発者チュートリアルを参照してください。
プロジェクトを設定する
Install Kotlin
システムにKotlinがインストールされ、JDK1.8 以降で実行中されていることを確認します。 Kotlin/ JVM開発の開始の詳細については、 Kotlin言語ドキュメントの「 Kotlin/ JVM を使い始める 」を参照してください。
プロジェクトを作成する
このガイドでは、 Gradle または Maven を使用して MongoDB Kotlin ドライバーの依存関係を追加する方法を示します。 IntelliJ IDEA などの統合開発環境(IDE)の使用をお勧めします。または Eclipse IDE を使用して、 Gradle または Maven を構成し、プロジェクトをビルドおよび実行することをお勧めします。
IDE を使用していない場合は、「 新しい Gradle ビルドの作成 」を 参照してください ガイドまたは Build Maven プロジェクトをセットアップする方法の詳細については、 ガイドを参照してください。
MongoDB を依存関係として追加する
Gradle を使用している場合 パッケージを管理するには、次のエントリをbuild.gradle.kts
依存関係リストに追加します。
dependencies { implementation("org.mongodb:mongodb-driver-kotlin-coroutine:5.3.0") }
Maven を使用している場合 パッケージを管理するには、次のエントリを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
依存関係リストに追加します。
implementation("org.mongodb:bson-kotlinx:5.3.0") // OR implementation("org.mongodb:bson-kotlin:5.3.0")
Maven を使用してパッケージを管理している場合は、次のいずれかのエントリを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 直列化 を参照してください。
MongoDB クラスターを作成する
Kotlin プロジェクトの依存関係を設定したら、データを保存および管理できる MongoDB クラスターを作成します。 「 Atlas を使い始める 」チュートリアルを完了して、新しい Atlas アカウントを設定し、無料レベルの MongoDB クラスターを作成して起動し、サンプル データセットをロードします。
「 Atlas を使い始める 」チュートリアルの手順を完了すると、Atlas に新しい MongoDB クラスターが配置され、新しいデータベースユーザーが作成され、クラスターに サンプル データがロードされます 。
クラスターに接続する
この手順では、 Kotlin ドライバー を使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行するアプリケーションを作成して実行する方法を示します。
まず、コードに 接続 を含めて、ドライバーがMongoDB stringクラスターに接続する方法を指定する必要があります。この string には、クラスターのホスト名または IP アドレスとポート、認証メカニズム、ユーザー認証情報、およびその他の接続オプションに関する情報が含まれます。
でホストされていないインスタンスまたはクラスターに接続する場合は、Atlas 接続 の形式方法については、 接続ガイド の「 に接続するその他の方法MongoDBstring 」セクションを参照してください。
string前のステップで作成したクラスターとユーザーの接続Atlas を取得するには、Database アカウントにログインして「配置」の下の {0Connect ページに移動し、 に表示されているクラスターの ボタンをクリックします。以下の画像。
接続にDriversオプションを選択し、ドライバーのリストから [ Kotlin ] を選択し、バージョン ドロップダウンから [ 4.10 or later ] を選択します。
次に、次の画像で強調表示されている Copy アイコンをクリックして、接続stringをクリップボードにコピーします。
Atlas 接続文字列を安全な場所に保存し、次の手順でアクセスできます。
アプリケーションから MongoDB クラスターをクエリする
次に、プロジェクトにQuickStartDataClassExample.kt
というファイルを作成します。
次のサンプル コードを ファイルにコピーし、uri
変数の値を前の手順で保存したMongoDB Atlas接続stringに置き換えます。 接続stringの "<password>"
プレースホルダーを、 atlasAdmin権限を持つユーザーに設定したパスワードに置き換えます。
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] )
出力が表示されない場合やエラーが表示される場合は、アプリケーションに適切な接続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に置き換えます。
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 ドライバーの詳細については、「基礎」ガイドを参照してください。このガイドでは、関連する概念を詳しく説明し、さまざまなタスクを実行するためのコード例を紹介しています。