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>
}
我有 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>
}