serializing/deserializing mongodb 文件时避免重复

Avoid duplication when serializing/deserializing mongodb documents

我有 2 个合集:

struct Profile {
   id: String,
   firstname: String,
   dances: Vec<String>
}

struct DanceModel {
   id: String,
   name: String,
}

我有一个查找查询,它查找舞蹈集合。

let cursor = profile_collection.aggregate(pipeline, None).await.unwrap();
let results = cursor.try_collect().await.unwrap_or_else(|_| vec![]);
let profile = results.first().unwrap();        
let result = bson::from_document::<ProfileResult>(profile.clone());

我像这样创建了一个新模型:

struct ProfileResult {
   id: String,
   name: String,
   dances: Vec<DanceModel>
}

如您所见,id 和 name 字段重复,我有 2 个模型用于相同的数据。

有没有办法避免属性和数据模型的重复?

您似乎在尝试将对象概念应用于程序技术。

要解决此问题,您可以创建一个 IdName 结构并将该结构应用于 uid 字段中的模型。

struct IdName {
   id: String,
   name: String,
}

struct Profile {
   id: String,
   firstname: String,
   dances: Vec<String>
}

struct DanceModel {
   uid: IdName
}

struct ProfileResult {
    uid: IdName
    dances: Vec<DanceModel>
}