Select column from Mongodb in golang using mgo

Wyatt picture Wyatt · Jun 29, 2015 · Viewed 15.5k times · Source

As I know, we can use

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

to select all texts in collection.

How can we use mgo to find specific field in golang? I tried

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

But it is not correct.

Answer

Cerise Limón picture Cerise Limón · Jun 29, 2015

Use the query Select method to specify the fields to 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)
}

In this example, I declared an anonymous type with the one selected field. It's OK to use a type with all document fields.