Docs Menu
Docs Home
/ / /
Scala

MongoDB へのデータの書込み (write)

項目一覧

  • Overview
  • サンプル アプリケーション
  • 1 つを挿入
  • 複数挿入
  • 更新 1
  • 複数更新
  • replaceOne
  • deleteOne
  • 複数削除
  • 一括書き込み (write)

このページでは、 Scalaドライバーを使用してMongoDBにデータを書込む一般的な方法を示すコピー可能なコード例を紹介します。

Tip

このページに記載されているメソッドの詳細については、各セクションに提供されているリンクを参照してください。

このページの例を使用するには、コード例をサンプル アプリケーションまたは独自のアプリケーションにコピーします。 <connection string URI>など、コード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。

次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。

  1. Maven または s以降のプロジェクトにScalaドライバーがインストールされていることを確認してください。

  2. 次のコードをコピーし、新しい.scalaファイルに貼り付けます。

  3. このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。

1import org.mongodb.scala._
2import org.mongodb.scala.bson.Document
3import org.mongodb.scala.model._
4import org.mongodb.scala.model.Filters._
5import org.mongodb.scala.result._
6import org.mongodb.scala.model.Updates._
7
8object SampleWriteApp {
9
10 def main(args: Array[String]): Unit = {
11 val mongoClient = MongoClient("<connection string URI>")
12 val database: MongoDatabase = mongoClient.getDatabase("<database name>")
13 val collection: MongoCollection[Document] = database.getCollection("<collection name>")
14
15 // Start example code here
16
17 // End example code here
18
19 // Wait for the operations to complete before closing client
20 // Note: This example uses Thread.sleep() for brevity and does not guarantee all
21 // operations will be completed in time
22 Thread.sleep(1000)
23 mongoClient.close()
24 }
25}

次のコードは、コレクションに単一のドキュメントを挿入する方法を示しています。

val doc: Document = Document("<field name>" -> "<value>")
val observable: Observable[InsertOneResult] = collection.insertOne(doc)
observable.subscribe(new Observer[InsertOneResult] {
override def onNext(result: InsertOneResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

insertOne()メソッドの詳細については、 ドキュメントの挿入ガイドを参照してください。

次のコードは、コレクションに複数のドキュメントを挿入する方法を示しています。

val docs: Seq[Document] = Seq(
Document("<field name>" -> "<value>"),
Document("<field name>" -> "<value>")
)
val observable: Observable[InsertManyResult] = collection.insertMany(docs)
observable.subscribe(new Observer[InsertManyResult] {
override def onNext(result: InsertManyResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

insertMany()メソッドについて詳しくは、ドキュメントの挿入ガイドをご覧ください。

次のコードは、フィールドを作成または編集して、コレクション内の 1 つのドキュメントを更新する方法を示しています。

val filter = equal("<field to match>", "<value to match>")
val update = set("<field name>", "<value>")
val observable: Observable[UpdateResult] = collection.updateOne(filter, update)
observable.subscribe(new Observer[UpdateResult] {
override def onNext(result: UpdateResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

updateOne()メソッドについて詳しくは、ドキュメントの更新ガイドを参照してください。

次のコードは、フィールドを作成または編集して、コレクション内の複数のドキュメントを更新する方法を示しています。

val filter = equal("<field to match>", "value to match")
val update = set("<field name>", "<value>")
val observable: Observable[UpdateResult] = collection.updateMany(filter, update)
observable.subscribe(new Observer[UpdateResult] {
override def onNext(result: UpdateResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

updateMany()メソッドについて詳しくは、ドキュメントの更新ガイドを参照してください。

次のコードは、コレクション内の単一のドキュメントを新しいドキュメントに置き換える方法を示しています。

val filter = equal("<field to match>", "<value to match>")
val replacementDoc: Document = Document("<field name>" -> "<value>")
val observable: Observable[UpdateResult] = collection.replaceOne(filter, replacementDoc)
observable.subscribe(new Observer[UpdateResult] {
override def onNext(result: UpdateResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

replaceOne()メソッドの詳細については、ドキュメントの置換のガイドを参照してください。

次のコードは、コレクション内の 1 つのドキュメントを削除する方法を示しています。

val filter = equal("<field to match>", "<value to match>")
val observable: Observable[DeleteResult] = collection.deleteOne(filter)
observable.subscribe(new Observer[DeleteResult] {
override def onNext(result: DeleteResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

deleteOne()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。

次のコードは、コレクション内の複数のドキュメントを削除する方法を示しています。

val filter = equal("<field to match>", "<value to match>")
val observable: Observable[DeleteResult] = collection.deleteMany(filter)
observable.subscribe(new Observer[DeleteResult] {
override def onNext(result: DeleteResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

deleteMany()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。

次のコードは、1 つの一括操作で複数の書き込み操作を実行する方法を示しています。

val operations = Seq(
InsertOneModel(Document("<field name>" -> "<value>")),
UpdateManyModel(equal("<field to match>", "<value to match>"), set("<field name>", "<value>")),
DeleteOneModel(equal("<field to match>", "<value to match>"))
)
val observable: Observable[BulkWriteResult] = collection.bulkWrite(operations)
observable.subscribe(new Observer[BulkWriteResult] {
override def onNext(result: BulkWriteResult): Unit = println(result)
override def onError(e: Throwable): Unit = println("Failed: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

bulkWrite()メソッドの詳細については、 一括書込み操作 のガイドをご覧ください。

戻る

変更を監視