複数のドキュメントの挿入
MongoCollection
オブジェクトで insertMany()
メソッドを呼び出すと、1 回の操作で複数のドキュメントをコレクションに挿入できます。 これらを挿入するには、 Document
オブジェクトをList
に追加し、そのList
を引数としてinsertMany()
に渡します。 まだ存在しないコレクションに対してinsertMany()
メソッドを呼び出すと、サーバーによってコレクションが作成されます。
挿入に成功すると、 insertMany()
はInsertManyResult
のインスタンスを返します。 InsertManyResult
インスタンスでgetInsertedIds()
メソッドを呼び出すと、挿入したドキュメントの_id
フィールドなどの情報を検索できます。
挿入操作が失敗した場合、ドライバーは例外を発生させます。 特定の条件で発生する例外の種類の詳細については、このページの下部にリンクしているinsertMany()
の API ドキュメントを参照してください。
例
次のスニペットは、複数のドキュメントをmovies
コレクションに挿入します。
例を実行すると、各値フィールドに挿入されたドキュメントのObjectId
値を含む出力が表示されます。
注意
この例では、接続 URI を使用して MongoDB のインスタンスに接続します。 MongoDB インスタンスへの接続の詳細については、「 接続ガイド 」を参照してください。
import com.mongodb.MongoException import com.mongodb.kotlin.client.coroutine.MongoClient import kotlinx.coroutines.runBlocking data class Movie(val title: String) fun main() = runBlocking { // Replace the uri string with your MongoDB deployment's connection string val uri = "<connection string uri>" val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") val collection = database.getCollection<Movie>("movies") val movieList = listOf( Movie("Short Circuit 3"), Movie("The Lego Frozen Movie") ) try { val result = collection.insertMany(movieList) println("Success! Inserted document ids: " + result.insertedIds) } catch (e: MongoException) { System.err.println("Unable to insert due to an error: $e") } mongoClient.close() }
Success! Inserted document ids: {0=BsonObjectId{value=...}, 1=BsonObjectId{value=...}}
このページで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。