3

是否有可能有一种方法将字符串数组作为输入,然后使用该数组创建查询的选定字段?所以,如果你有让我们说这个数组:

var myArray []string{"fieldA","fieldB"}

然后您可以自动创建它:

selectedFields := bson.M{"fieldA": 1, "fieldB": 1}

然后执行查询

result = c.Find(query).Select(selectedFields).One()
4

1 回答 1

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() 
于 2014-10-29T13:13:47.610 回答