Puede insertar varios documentos en una colección llamando al
insert_many() método en un Collection instancia.
Pase un vector con 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 MyStruct instancias 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 ejemplo de uso del 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().
Seleccione 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("...")