是否可以使用一个方法将字符串数组作为输入,然后使用此数组创建查询的选定字段? 所以如果你让我们说这个数组:
var myArray []string{"fieldA","fieldB"}
然后您可以自动创建:
selectedFields := bson.M{"fieldA": 1, "fieldB": 1}
然后执行查询
result = c.Find(query).Select(selectedFields).One()
答案 0 :(得分:4)
您可以使用以下内容:
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()