使用 mgo 在 golang 中来自 Mongodb 的 Select 列

Select column from Mongodb in golang using mgo

据我所知,我们可以使用

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

至select collection中的所有文本。

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

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

但这是不正确的。

使用查询Select方法指定字段return:

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)
}

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

到select多个字段:

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)
}
var result interface{}
err = c.Find(nil).Select(bson.M{"text": 1}).All(&result)