Puede insertar varios documentos en una colección llamando al método insert_many() en una instancia de Collection.
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 único documento, considere utilizar el método insert_one() en su lugar. Para un ejemplo de código que utilice este método, consulta el Ejemplo de uso Insertar un documento.
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 la pestaña Asynchronous o Synchronous para ver el código correspondiente para cada runtime:
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("...")