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, considera usar el método insert_one() en su lugar. Para un ejemplo de código ejecutable que utiliza este método, consulte el 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 documentos en la colección restaurants de la base de datos sample_restaurants. El ejemplo utiliza una estructura Restaurant que contiene los campos name y cuisine para modelar los documentos que se insertan en la colección.
Este ejemplo pasa un vector de documentos como parámetro al método insert_many().
Selecciona el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:
use mongodb::{ bson::doc, 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?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let docs = vec! [ Restaurant { name: "While in Kathmandu".to_string(), cuisine: "Nepalese".to_string(), }, Restaurant { name: "Cafe Himalaya".to_string(), cuisine: "Nepalese".to_string(), } ]; let insert_many_result = my_coll.insert_many(docs, None).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, 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)?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let docs = vec! [ Restaurant { name: "While in Kathmandu".to_string(), cuisine: "Nepalese".to_string(), }, Restaurant { name: "Cafe Himalaya".to_string(), cuisine: "Nepalese".to_string(), } ]; let insert_many_result = my_coll.insert_many(docs, None)?; println!("Inserted documents with _ids:"); for (_key, value) in &insert_many_result.inserted_ids { println!("{}", value); } Ok(()) }
Inserted documents with _ids: ObjectId("...") ObjectId("...")