Insira um documento
Você pode inserir um documento em uma coleção ligando para o métodoinsert_one() em uma Collection
instância.
Você deve inserir um documento do mesmo tipo com o qual parametrizou sua instância Collection
. Por exemplo, se você parametrizou sua coleção com a estrutura MyStruct
, passe uma instância MyStruct
como parâmetro para o método insert_one()
para inserir um documento. Para saber mais sobre como especificar um parâmetro de tipo, consulte a seção Parametrização de collections do guia Bancos de dados e collections.
O insert_one()
método retorna um InsertOneResult tipo que contém o _id
campo do documento recém-inserido.
Para saber mais sobre o método insert_one()
, consulte o guia Inserir documentos .
Exemplo
Este exemplo insere um documento na coleção restaurants
do banco de dados sample_restaurants
. O método insert_one()
insere um documento que tem valores de campo name
, borough
e cuisine
.
Você pode inserir este documento como uma instância 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>
porinsert_doc
.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>
porinsert_struct
. A estruturaRestaurant
é 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 std::env; use mongodb::{ bson::{doc, Document}, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Restaurant { borough: String, cuisine: String, name: String, } 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_doc = doc! { "name": "Sea Stone Tavern", "cuisine": "Greek", "borough": "Queens", }; let insert_struct = Restaurant { name: "Sea Stone Tavern".to_string(), cuisine: "Greek".to_string(), borough: "Queens".to_string(), }; // Replace <struct or doc> with the insert_struct or insert_doc variable let res = my_coll.insert_one(<struct or doc>).await?; println!("Inserted a document with _id: {}", res.inserted_id); Ok(()) }
Inserted a document with _id: ObjectId("...")
use std::env; use mongodb::{ bson::{doc, Document}, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Restaurant { borough: String, cuisine: String, name: 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_doc = doc! { "name": "Sea Stone Tavern", "cuisine": "Greek", "borough": "Queens", }; let insert_struct = Restaurant { name: "Sea Stone Tavern".to_string(), cuisine: "Greek".to_string(), borough: "Queens".to_string(), }; // Replace <struct or doc> with the insert_struct or insert_doc variable let res = my_coll.insert_one(<struct or doc>).run()?; println!("Inserted a document with _id: {}", res.inserted_id); Ok(()) }
Inserted a document with _id: ObjectId("...")