我正在尝试从 MongoDB 获取用户信息,如下所示:
\npub async fn find_user_by_name(&self, data: String) -> Vec<Uye> {\n let filter = doc! {"isim": data};\n let options = FindOptions::builder()\n .projection(doc! {"sifre": 0, "mail": 0, "tokenInfo": 0 })\n .build();\n let cursor = match self.user_col.find(None, options).await {\n std::result::Result::Ok(cursor) => cursor,\n std::result::Result::Err(_) => return vec![],\n };\n\n cursor.try_collect().await.unwrap()\n}\n
Run Code Online (Sandbox Code Playgroud)\n我的 Uye 结构是:
\npub struct Uye {\n pub id: Option<i32>,\n pub isim: Option<String>,\n pub sifre: Option<String>,\n pub mail: Option<String>,\n pub dogumtarihi: Option<String>,\n pub avatar_url: Option<String>,\n pub kaydedilen: Option<Vec<i32>>,\n pub perm: Option<String>,\n pub permLevel: Option<i32>,\n pub onaylandi: Option<bool>,\n pub isDummy: Option<bool>,\n pub hesap_onay_kodu: Option<i32>,\n pub avatar_path: Option<String>,\n pub tokenInfo: Option<TokenInfo>,\n}\n
Run Code Online (Sandbox Code Playgroud)\n当我通过http请求从API获取数据时,结果是这样的:
\n{\n "status": "basarili",\n "user": [\n {\n "id": 60,\n "isim": "test User",\n "sifre": null, // <-----\n "mail": null, // <-----\n "dogumtarihi": "",\n "avatar_url": "/static/uploads/images/avatar",\n "kaydedilen": [],\n "perm": "\xc3\x9cye",\n "permLevel": 0,\n "onaylandi": false,\n "isDummy": false,\n "hesap_onay_kodu": 123123,\n "avatar_path": "/static/uploads/images/avatar",\n "tokenInfo": null // <-----\n }\n ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n我想从对象中删除空字段以使其看起来更好。有什么办法吗?
\n你的结构中有很多字段。可能值得使用serde_with
板条箱:
#[serde_with::skip_serializing_none]
#[derive(Serialize)]
pub struct Uye {
pub id: Option<i32>,
pub isim: Option<String>,
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
834 次 |
最近记录: |