Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Gravar dados no MongoDB

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 no aplicativo de amostra ou em 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.