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
/ /

Referencia rápida

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

El controlador Rust ofrece un entorno de ejecución asíncrono para ejecutar aplicaciones asíncronas. Además, el driver admite un entorno de ejecución síncrono bloqueante. Para cada tarea de MongoDB que aparece en la siguiente tabla, puedes ver ejemplos que utilizan tanto las API asincrónicas como las sincrónicas.

Tip

Para obtener más información sobre los entornos de ejecución asíncronos y síncronos, consulte el Guía de APIs asíncronas y síncronas.

Comando
Sintaxis
Find a Document

API Documentation

Tiempo de ejecución asíncrono

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

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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);
}

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecució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?;

Sincroniza el entorno de ejecución

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

Volver

Próximos pasos