Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Insertar documentos

En esta guía, puedes aprender a usar el controlador de Scala para añadir documentos a una colección de MongoDB realizando operaciones de inserción.

Una operación de inserción inserta uno o más documentos en una colección de MongoDB. Puedes realizar una operación de inserción mediante los siguientes métodos:

  • insertOne() para insertar un solo documento

  • insertMany() para insertar uno o más documentos

Los ejemplos de esta guía utilizan la colección restaurants en la base de datos sample_restaurants de los conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde tu aplicación Scala, crea un MongoClient que se conecte a un clúster Atlas y asigna los siguientes valores a tus variables database y collection:

val database: MongoDatabase = mongoClient.getDatabase("sample_restaurants")
val collection: MongoCollection[Document] = database.getCollection("restaurants")

Para aprender cómo crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de ejemplo, consulta la guía MongoDB Get Started.

En una colección de MongoDB, cada documento debe contener un campo _id con un valor de campo único.

MongoDB permite gestionar este campo de dos formas:

  • Establece el campo _id para cada documento tú mismo, asegurándote de que cada valor sea único.

  • Permite que el driver genere automáticamente valores únicos de BsonObjectId para cada campo _id del documento.

A menos que pueda garantizar la exclusividad, recomendamos dejar que el controlador genere automáticamente los valores de _id.

Nota

Los valores _id duplicados violan las restricciones de índice único, lo que hace que el controlador devuelva un error.

Para obtener más información sobre el campo _id, consulta la guía Índices únicos en el manual del MongoDB Server.

Para obtener más información sobre la estructura y las reglas de los documentos, consulta la guía de Documentos en el manual de MongoDB Server.

Para añadir un solo documento a una colección de MongoDB, llama al método insertOne() y pasa el documento que quieres insertar.

El siguiente ejemplo inserta un documento en la colección restaurants:

val doc: Document = Document("name" -> "Neighborhood Bar & Grill", "borough" -> "Queens")
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")
})
AcknowledgedInsertOneResult{insertedId=BsonObjectId{value=...}}
Completed

Para añadir varios documentos a una colección de MongoDB, llame la función insertMany() y pase una lista de documentos que desee insertar.

El siguiente ejemplo inserta dos documentos en la colección restaurants:

val docs: Seq[Document] = Seq(
Document("name" -> "Metropolitan Cafe", "borough" -> "Queens"),
Document("name" -> "Yankee Bistro", "borough" -> "Bronx")
)
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")
})
AcknowledgedInsertManyResult{insertedIds={0=BsonObjectId{value=...}, 1=BsonObjectId{value=...}}}
Completed

El método insertOne() acepta opcionalmente un parámetro InsertOneOptions que establece opciones para configurar la operación de inserción. Si no se especifican opciones, el controlador realiza la operación de inserción con la configuración por defecto. Pasa las opciones como el último parámetro al método insertOne().

La siguiente tabla describe los métodos setter que puedes usar para configurar una instancia de InsertOneOptions:

Método
Descripción

bypassDocumentValidation()

Si true se establece en, permite que el controlador ignore la validación a nivel de documento. El
valor predeterminado false es.

comment()

Establece un comentario para adjuntar a la operación. Para obtener más información, consulta la guía de campos de comandos de inserción en el manual del servidor MongoDB.

Puedes configurar los ajustes anteriores en el método insertMany() configurando una instancia InsertManyOptions. También se puede utilizar el método setter ordered() para especificar el orden en que el controlador inserta documentos en MongoDB. Pasar las opciones como último parámetro al método insertMany().

El siguiente código utiliza el método insertMany() para insertar tres nuevos documentos en una colección. Debido a que la opción bypassDocumentValidation está habilitada, esta operación de inserción omite la validación a nivel de documento:

val docs: Seq[Document] = Seq(
Document("name" -> "One Night's Delight", "borough" -> "Queens"),
Document("name" -> "Second Street Pub", "borough" -> "Manhattan"),
Document("name" -> "Triple Crown Diner", "borough" -> "Brooklyn")
)
val opts: InsertManyOptions = InsertManyOptions().bypassDocumentValidation(true)
val observable: Observable[InsertManyResult] = collection.insertMany(docs, opts)
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")
})
AcknowledgedInsertManyResult{insertedIds={0=BsonObjectId{value=...}, 1=BsonObjectId{value=...}, 2=BsonObjectId{value=...}}}
Completed

Para obtener más información sobre cualquiera de los métodos mencionados en esta guía, consulta la siguiente documentación de la API: