Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Inserta varios documentos

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.

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> por insert_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> por insert_structs. La estructura Restaurant se 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 };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}
#[tokio::main]
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 };
#[derive(Serialize, Deserialize, Debug)]
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("...")

Volver

Inserte uno