MongoDB에 데이터 쓰기
개요
이 페이지에서는 스칼라 운전자 사용하여 MongoDB 에 데이터를 쓰기 (write) 데 사용할 수 있는 일반적인 방법을 보여주는 복사 가능한 코드 예제를 확인할 수 있습니다.
팁
이 페이지에 표시된 메서드에 대해 자세히 알아보려면 각 섹션에 제공된 링크를 참조하세요.
이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <connection string URI>
)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.
샘플 애플리케이션
다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.
Maven 또는 sbt 프로젝트 에 스칼라 운전자 설치되어 있는지 확인합니다.
다음 코드를 복사하여 새
.scala
파일에 붙여넣습니다.이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.
1 import org.mongodb.scala._ 2 import org.mongodb.scala.bson.Document 3 import org.mongodb.scala.model._ 4 import org.mongodb.scala.model.Filters._ 5 import org.mongodb.scala.result._ 6 import org.mongodb.scala.model.Updates._ 7 8 object 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 }
insertOne
다음 코드는 단일 문서 를 컬렉션 에 삽입하는 방법을 보여줍니다.
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()
메서드에 대해 자세히 알아보려면 문서 삽입 가이드를 참조하세요.
UpdateOne
다음 코드는 필드 를 만들거나 편집하여 컬렉션 의 단일 문서 를 업데이트 하는 방법을 보여줍니다.
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()
메서드에 대해 자세히 알아보려면 문서 업데이트 가이드를 참조하세요.
replaceOne
다음 코드는 컬렉션 의 단일 문서 를 새 문서 로 바꾸는 방법을 보여줍니다.
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()
메서드에 대해 자세히 알아보려면 문서 교체 가이드를 참조하세요.
deleteOne
다음 코드는 컬렉션 에서 단일 문서 를 삭제 하는 방법을 보여줍니다.
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()
메서드에 대해 자세히 알아보려면 문서 삭제 가이드를 참조하세요.
대량 쓰기
다음 코드는 단일 대량 작업으로 여러 쓰기 (write) 작업을 수행하는 방법을 보여줍니다.
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()
대해 자세히 학습 대량 쓰기 작업 가이드 참조하세요.