Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

Insira vários documentos

Você pode inserir vários documentos em uma coleção chamando o métodoinsert_many() em uma Collection instância.

Passe um vetor contendo um ou mais documento para o método insert_many() para inseri-los na sua collection. Esses documentos devem ser instâncias do tipo com o qual você parametrizou sua instância Collection . Por exemplo, se você parametrizou sua collection com a estrutura MyStruct , passe um vetor de instâncias MyStruct como parâmetro para o método insert_many() .

Dica

Para inserir um único documento, considere usar o insert_one() no lugar. Para obter um exemplo de código executável que usa esse método, consulte o exemplo de uso Inserir um documento .

O insert_many() método retorna um InsertManyResult tipo que referencia os _id valores dos documentos inseridos.

Para saber mais sobre como inserir documento em uma collection, consulte o guia Inserir documento .

Este exemplo insere vários documentos na collection restaurants do banco de banco de dados sample_restaurants. O exemplo insere documentos que têm name e cuisine valores de campo passando um vetor de documentos para o método insert_many() .

Você pode inserir estes documentos como instâncias do tipo Document ou um tipo de dados personalizado. Para especificar qual tipo de dados representa os dados da coleção, execute as seguintes ações nas linhas realçadas:

  • Para acessar e inserir documentos de coleção como documentos BSON, substitua o parâmetro de tipo <T> por <Document> e o espaço reservado <struct or doc> por insert_docs.

  • Para acessar e inserir documentos de coleção como instâncias da estrutura Restaurant, substitua o parâmetro de tipo <T> por <Restaurant> e o espaço reservado <struct or doc> por insert_structs. A estrutura Restaurant é definida no topo do arquivo de código.

Selecione a aba Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:

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("...")

Voltar

insertOne