用户有许多id字段 - 每种社交登录类型一个:
type User struct {
Name string
Github_id string
Facebook_id string
Google_id string
}
我有存储provider
和id
的变量:
provider := "github" //could be facebook or google too
id := "12345"
和用户:
var user User
user.Name = "Bob"
但是如何将id分配给正确的属性?我试过了:
if provider == "github" {
field := "Github_id"
user.field = id //and also user[field] = id
}
到目前为止没有成功。
附加说明
我的用户可能拥有多个社交登录帐户,因此我不能只使用一个social_id
属性来解决此问题。
答案 0 :(得分:2)
在这种情况下,对结构执行反射以填充正确的字段似乎有点矫枉过正。
我建议您在jsons.stream().map(Document::parse).forEach(collection::insertOne);
结构中使用地图字段来保存所有社交ID。例如:
collection.insertMany(
jsons.stream().map(Document::parse).collect(Collectors.toList())
);
用法:
User