我想在一个项目中使用 Async MongoDB。
不想绕过客户端,因为它需要绕过多个任务和线程。所以我使用惰性静态保持了一个静态客户端。但是我不能在初始化块中使用 await 。
我能做些什么来解决这个问题?
也欢迎提出在没有lazy_static 的情况下完全不同的建议。
use std::env;
use futures::stream::StreamExt;
use mongodb::{
bson::{doc, Bson},
options::ClientOptions,
Client,
};
lazy_static! {
static ref MONGO: Option<Client> = {
if let Ok(token) = env::var("MONGO_AUTH") {
if let Ok(client_options) = ClientOptions::parse(&token).await
^^^^^
{
if let Ok(client) = Client::with_options(client_options) {
return Some(client);
}
}
}
return None;
};
}