是否有可能有一种方法将字符串数组作为输入,然后使用该数组创建查询的选定字段?所以,如果你有让我们说这个数组:
var myArray []string{"fieldA","fieldB"}
然后您可以自动创建它:
selectedFields := bson.M{"fieldA": 1, "fieldB": 1}
然后执行查询
result = c.Find(query).Select(selectedFields).One()
你可以使用类似的东西:
func sel(q ...string) (r bson.M) {
r = make(bson.M, len(q))
for _, s := range q {
r[s] = 1
}
return
}
result := c.Find(query).Select(sel("fieldA", "fieldB")).One()
// or
fields := []string{"fieldA","fieldB"}
result := c.Find(query).Select(sel(fields...)).One()