查找文档
您可以通过调用 find_one() 从集合中检索单个文档Collection
实例上的方法。
将查询筛选器传递给find_one()
方法,以返回集合中与筛选器匹配的一份文档。 如果有多个文档与查询筛选器匹配,则此方法会根据它们在数据库中的自然顺序或根据FindOneOptions
实例中指定的排序顺序返回第一个匹配的文档。
find_one()
方法返回 Option<T> 类型,其中T
是您用于参数化Collection
实例的类型。
要学习;了解有关检索文档的更多信息,请参阅检索数据指南。
例子
此示例从sample_restaurants
数据库的restaurants
collection中检索与查询筛选器匹配的文档。该示例使用检索到的文档中的数据填充Restaurant
结构体。
此示例使用的查询筛选器匹配name
字段值为"Tompkins Square Bagels"
的文档。 MongoDB 检索与查询筛选器匹配的第一个文档。
选择 Asynchronous或Synchronous标签页,查看每个运行时的相应代码:
use mongodb::{ bson::doc, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, cuisine: String, } async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let result = my_coll.find_one( doc! { "name": "Tompkins Square Bagels" } ).await?; println!("{:#?}", result); Ok(()) }
Some( Restaurant { name: "Tompkins Square Bagels", cuisine: "American", }, )
use mongodb::{ bson::doc, sync::{Client, Collection} }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, cuisine: String, } fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let result = my_coll.find_one( doc! { "name": "Tompkins Square Bagels" } ).run()?; println!("{:#?}", result); Ok(()) }
Some( Restaurant { name: "Tompkins Square Bagels", cuisine: "American", }, )