Docs Menu
Docs Home
/ /

Referencia rápida

En esta página, puede ver ejemplos que utilizan el controlador de Rust para realizar varias tareas comunes de MongoDB. Cada fila de la siguiente tabla describe la tarea, muestra la sintaxis del controlador para ejecutarla e incluye enlaces a la documentación de referencia y API relacionada.

El controlador de Rust ofrece un entorno de ejecución asíncrono para ejecutar aplicaciones asíncronas. Además, admite un entorno de ejecución síncrono con bloqueo. Para cada tarea de MongoDB que se muestra en la siguiente tabla, puede ver ejemplos que utilizan tanto las API asíncronas como las síncronas.

Tip

Para obtener más información sobre los tiempos de ejecución asincrónicos y sincrónicos, consulte Guía deAPI asincrónicas y sincrónicas.

Comando
Sintaxis
Find a Document

API Documentation

Tiempo de ejecución asíncrono

let result = collection.find_one(doc! { "title": "Peter Pan" }).await?;

Tiempo de ejecución de sincronización

let result = collection.find_one(doc! { "title": "Peter Pan" }).run()?;

Tiempo de ejecución asíncrono

let filter = doc! { "year": 1925 };
let mut cursor = collection.find(filter).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "year": 1925 };
let mut cursor = collection.find(filter).run()?;

Tiempo de ejecución asíncrono

let doc = doc! {
"title": "Mistress America", "type": "movie"
};
let result = collection.insert_one(doc).await?;

Tiempo de ejecución de sincronización

let doc = doc! {
"title": "Mistress America", "type": "movie"
};
let result = collection.insert_one(doc).run()?;

Tiempo de ejecución asíncrono

let docs = vec![
doc! { "title": "Friends With Money", "runtime": 88 },
doc! { "title": "Please Give", "runtime": 90 },
doc! { "title": "You Hurt My Feelings", "runtime": 93 },
];
let result = collection.insert_many(docs).await?;

Tiempo de ejecución de sincronización

let docs = vec![
doc! { "title": "Friends With Money", "runtime": 88 },
doc! { "title": "Please Give", "runtime": 90 },
doc! { "title": "You Hurt My Feelings", "runtime": 93 },
];
let result = collection.insert_many(docs).run()?;

Tiempo de ejecución asíncrono

let filter = doc! { "title": "Burn After Reading"};
let update = doc! {
"$set": doc!{ "num_mflix_comments": 1 }
};
let result = collection.update_one(filter, update).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "title": "Burn After Reading"};
let update = doc! {
"$set": doc!{ "num_mflix_comments": 1 }
};
let result = collection.update_one(filter, update).run()?;

Tiempo de ejecución asíncrono

let filter = doc! { "rated": "PASSED"};
let update = doc! {
"$set": doc!{ "rated": "Not Rated" }
};
let result = collection.update_many(filter, update).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "rated": "PASSED"};
let update = doc! {
"$set": doc!{ "rated": "Not Rated" }
};
let result = collection.update_many(filter, update).run()?;

Tiempo de ejecución asíncrono

let filter = doc! { "title": "è Nous la Libertè" };
let replacement = doc! {
"title": "À nous la liberté",
"type": "movie",
"directors": vec! [ "René Clair" ]
};
let result = collection.replace_one(filter, replacement).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "title": "è Nous la Libertè" };
let replacement = doc! {
"title": "À nous la liberté",
"type": "movie",
"directors": vec! [ "René Clair" ]
};
let result = collection.replace_one(filter, replacement).run()?;

Tiempo de ejecución asíncrono

let filter = doc! { "title": "Search and Destroy" };
let result = collection.delete_one(filter).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "title": "Search and Destroy" };
let result = collection.delete_one(filter).run()?;

Tiempo de ejecución asíncrono

let filter = doc! {
"year": doc! { "$lt": 1920 }
};
let result = collection.delete_many(filter).await?;

Tiempo de ejecución de sincronización

let filter = doc! {
"year": doc! { "$lt": 1920 }
};
let result = collection.delete_many(filter).run()?;
Access Data from a Cursor Iteratively

Tiempo de ejecución asíncrono

let mut cursor = collection
.find(doc! { "$and": vec!
[
doc! { "metacritic": doc! { "$gt": 90 } },
doc! { "directors": vec! [ "Martin Scorsese" ] }
] })
.await?;
while let Some(result) = cursor.try_next().await? {
println!("{}", result);
}

Tiempo de ejecución de sincronización

let cursor = collection
.find(doc! { "$and": vec!
[
doc! { "metacritic": doc! { "$gt": 90 } },
doc! { "directors": vec! [ "Martin Scorsese" ] }
] })
.run()?;
for result in cursor {
println!("{}", result?);
}
Access Data from a Cursor as an Array

Tiempo de ejecución asíncrono

let cursor = collection.find(doc! { "title": "Secrets & Lies" }).await?;
let results: Vec<Document> = cursor.try_collect().await?;

Tiempo de ejecución de sincronización

let cursor = collection.find(doc! { "title": "Secrets & Lies" }).run()?;
let results: Vec<Result<Document>> = cursor.collect();

Tiempo de ejecución asíncrono

let filter = doc! {
"languages": vec! [ "Mandarin" ]
};
let result = collection.count_documents(filter).await?;

Tiempo de ejecución de sincronización

let filter = doc! {
"languages": vec! [ "Mandarin" ]
};
let result = collection.count_documents(filter).run()?;
List Distinct Values of a Field

Tiempo de ejecución asíncrono

let field_name = "title";
let filter = doc! {
"directors": vec! [ "Sean Baker" ]
};
let results = collection.distinct(field_name, filter).await?;

Tiempo de ejecución de sincronización

let field_name = "title";
let filter = doc! {
"directors": vec! [ "Sean Baker" ]
};
let results = collection.distinct(field_name, filter).run()?;
Limit the Number of Documents Retrieved

Tiempo de ejecución asíncrono

let filter = doc! { "awards.wins": 25};
let mut cursor = collection.find(filter).limit(5).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "awards.wins": 25};
let mut cursor = collection.find(filter).limit(5).run()?;
Skip Retrieved Documents

Tiempo de ejecución asíncrono

let filter = doc! { "runtime": 100 };
let mut cursor = collection.find(filter).skip(1).await?;

Tiempo de ejecución de sincronización

let filter = doc! { "runtime": 100 };
let mut cursor = collection.find(filter).skip(1).run()?;
Sort the Documents When Retrieving Them

Tiempo de ejecución asíncrono

let filter = doc! {
"directors": vec! [ "Nicole Holofcener" ]
};
let mut cursor = collection
.find(filter)
.sort(doc! { "imdb.rating": 1 })
.await?;

Tiempo de ejecución de sincronización

let filter = doc! {
"directors": vec! [ "Nicole Holofcener" ]
};
let mut cursor = collection
.find(filter)
.sort(doc! { "imdb.rating": 1 })
.run()?;
Project Document Fields When Retrieving Them

Tiempo de ejecución asíncrono

let filter = doc! { "year": 2015 };
let mut cursor = collection
.find(filter)
.projection(doc! { "title": 1, "metacritic": 1, "_id": 0 })
.await?;

Tiempo de ejecución de sincronización

let filter = doc! { "year": 2015 };
let mut cursor = collection
.find(filter)
.projection(doc! { "title": 1, "metacritic": 1, "_id": 0 })
.run()?;
Create an Index

Tiempo de ejecución asíncrono

let index: IndexModel = IndexModel::builder().keys(doc! { "title": 1 }).build();
let result = collection.create_index(index).await?;

Tiempo de ejecución de sincronización

let index: IndexModel = IndexModel::builder().keys(doc! { "title": 1 }).build();
let result = collection.create_index(index).run()?;

Volver

Próximos pasos