使用mgo从golang中选择Mongodb中的列

时间:2015-06-29 13:05:57

标签: mongodb go mgo

据我所知,我们可以使用

> db['twitter-3'].find({}, {"text": 1})

选择集合中的所有文本。

我们如何使用mgo在golang中找到特定的字段? 我试过了

var result []string
err = conn.Find(bson.M{}, bson.M{"text", 1}).All(&result)

但这不正确。

3 个答案:

答案 0 :(得分:21)

使用查询Select方法指定要返回的字段:

var result []struct{ Text string `bson:"text"` }
err := c.Find(nil).Select(bson.M{"text": 1}).All(&result)
if err != nil {
    // handle error
}
for _, v := range result {
     fmt.Println(v.Text)
}

在这个例子中,我声明了一个带有一个选定字段的匿名类型。可以使用包含所有文档字段的类型。

答案 1 :(得分:2)

选择多个字段:

var result []struct{
    Text string `bson:"text"`
    Otherfield string `bson:"otherfield"`
}

err := c.Find(nil).Select(bson.M{"text": 1, "otherfield": 1}).All(&result)
if err != nil {
   // handle error
}
for _, v := range result {
    fmt.Println(v.Text)
}

答案 2 :(得分:0)

var result interface{}
err = c.Find(nil).Select(bson.M{"text": 1}).All(&result)