Docs 菜单
Docs 主页
/ / /
Rust 驱动程序
/

查找文档

您可以通过调用 find_one() 从集合中检索单个文档Collection 实例上的方法。

将查询筛选器传递给find_one()方法,以返回集合中与筛选器匹配的一份文档。 如果有多个文档与查询筛选器匹配,则此方法会根据它们在数据库中的自然顺序或根据FindOneOptions实例中指定的排序顺序返回第一个匹配的文档。

find_one()方法返回 Option<T> 类型,其中T 是您用于参数化Collection 实例的类型。

要学习;了解有关检索文档的更多信息,请参阅检索数据指南。

此示例从sample_restaurants数据库的restaurantscollection中检索与查询筛选器匹配的文档。该示例使用检索到的文档中的数据填充Restaurant结构体。

此示例使用的查询筛选器匹配name字段值为"Tompkins Square Bagels"的文档。 MongoDB 检索与查询筛选器匹配的第一个文档。

选择 AsynchronousSynchronous标签页,查看每个运行时的相应代码:

use mongodb::{
bson::doc,
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?;
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 };
#[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)?;
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",
},
)

后退

使用示例