Menu Docs
Página inicial do Docs
/ / /
Scala

Gravar dados no MongoDB

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • insertOne
  • Inserir vários
  • UpdateOne
  • Atualizar vários
  • replaceOne
  • Excluir um
  • Excluir vários
  • Gravação em massa

Nesta página, você pode ver exemplos de código copiáveis que mostram métodos comuns que você pode usar para escrever dados no MongoDB usando o driver Scala.

Dica

Para saber mais sobre qualquer um dos métodos mostrados nesta página, consulte o link fornecido em cada seção.

Para usar um exemplo desta página, copie o exemplo de código para oaplicativo de amostra ou para seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>, pelos valores relevantes para sua implantação do MongoDB.

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se você tem o driver Scala instalado em seu projeto Maven ou sbt.

  2. Copie o seguinte código e cole-o em um novo arquivo .scala .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

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}

O código a seguir mostra como inserir um único documento em uma coleção:

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")
})

Para saber mais sobre o método insertOne() , consulte o guia Inserir documentos .

O seguinte código mostra como inserir vários documentos em uma coleção:

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")
})

Para saber mais sobre o método insertMany() , consulte o guia Inserir documentos .

O código abaixo mostra como atualizar um único documento em uma collection criando ou editando um campo:

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")
})

Para saber mais sobre o método updateOne() , consulte o guia Atualizar documentos .

O seguinte código mostra como atualizar vários documentos em uma collection criando ou editando um campo:

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")
})

Para saber mais sobre o método updateMany() , consulte o guia Atualizar documentos .

O código a seguir mostra como substituir um único documento em uma coleção por um novo documento:

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")
})

Para saber mais sobre o método replaceOne() , consulte o guia Substituir documentos .

O código a seguir mostra como excluir um único documento em uma collection:

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")
})

Para saber mais sobre o método deleteOne() , consulte o guia Excluir documentos .

O seguinte código mostra como excluir vários documentos em uma coleção:

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")
})

Para saber mais sobre o método deleteMany() , consulte o guia Excluir documentos .

O seguinte código mostra como executar múltiplas operações de gravação em uma única operação em massa:

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")
})

Para saber mais sobre o bulkWrite() método, consulte o guia de operações de gravação em massa.

Voltar

Monitore alterações