我有两个集合:
- 概要文件
- 舞蹈
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字段是重复的,对于相同的数据,我有两个模型。
是否有办法避免属性和数据模型的重复?
看起来您是在尝试将对象概念应用于过程技术。
要解决这个问题,您可以创建一个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>
}