Puedes insertar múltiples documentos en una colección llamando a la función
insert_many() método sobre un Collection instancia.
Pase un vector que contiene uno o más documentos al método insert_many() para insertarlos en su colección. Estos documentos deben ser instancias del tipo con el que parametrizó su instancia Collection. Por ejemplo, si parametrizó su colección con la estructura MyStruct, pase un vector de instancias MyStruct como parámetro al método insert_many().
Tip
Para insertar un solo documento, considere usar el método insert_one(). Para ver un ejemplo de código ejecutable que utiliza este método, consulte Insertar un documento ejemplo de uso.
El método insert_many() devuelve un tipo InsertManyResult que referencia los valores _id de los documentos insertados.
Para obtener más información sobre cómo insertar documentos en una colección, consulte la guía Insertar documentos.
Ejemplo
Este ejemplo inserta múltiples documentos en la colección restaurants de la base de datos sample_restaurants. El ejemplo inserta documentos que tienen los valores de los campos name y cuisine al pasar un vector de documentos al método insert_many().
Se puede insertar estos documentos como instancias del tipo Document o de un tipo de datos personalizado. Para especificar qué tipo de dato representa los datos de la colección, realiza las siguientes acciones en las líneas resaltadas:
Para acceder e insertar documentos en la colección como documentos BSON, reemplaza el parámetro de tipo
<T>por<Document>y el marcador de posición<struct or doc>porinsert_docs.Para acceder e insertar documentos de colección como instancias de la estructura
Restaurant, reemplace el parámetro de tipo<T>por<Restaurant>y el marcador de posición<struct or doc>porinsert_structs. La estructuraRestaurantse define en la parte superior del archivo de código.
Selecciona el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:
use mongodb::{ bson::{doc, Document}, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, cuisine: String, } async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let insert_docs = vec! [ doc! { "name": "While in Kathmandu", "cuisine": "Nepalese", }, doc! { "name": "Cafe Himalaya", "cuisine": "Nepalese", } ]; let insert_structs = vec! [ Restaurant { name: "While in Kathmandu".to_string(), cuisine: "Nepalese".to_string(), }, Restaurant { name: "Cafe Himalaya".to_string(), cuisine: "Nepalese".to_string(), } ]; // Replace <structs or docs> with the insert_structs or insert_docs variable let insert_many_result = my_coll.insert_many(<structs or docs>).await?; println!("Inserted documents with _ids:"); for (_key, value) in &insert_many_result.inserted_ids { println!("{}", value); } Ok(()) }
Inserted documents with _ids: ObjectId("...") ObjectId("...")
use mongodb::{ bson::{doc, Document}, sync::{Client, Collection} }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, cuisine: String, } fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let insert_docs = vec! [ doc! { "name": "While in Kathmandu", "cuisine": "Nepalese", }, doc! { "name": "Cafe Himalaya", "cuisine": "Nepalese", } ]; let insert_structs = vec! [ Restaurant { name: "While in Kathmandu".to_string(), cuisine: "Nepalese".to_string(), }, Restaurant { name: "Cafe Himalaya".to_string(), cuisine: "Nepalese".to_string(), } ]; // Replace <structs or docs> with the insert_structs or insert_docs variable let insert_many_result = my_coll.insert_many(<structs or docs>).run()?; println!("Inserted documents with _ids:"); for (_key, value) in &insert_many_result.inserted_ids { println!("{}", value); } Ok(()) }
Inserted documents with _ids: ObjectId("...") ObjectId("...")