Select column from Mongodb in golang using mgo
Asked Answered
E

3

16

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.

Erl answered 29/6, 2015 at 13:5 Comment(0)
A
26

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.

Adamis answered 29/6, 2015 at 13:25 Comment(3)
In the structure, what does bson:"text" stand for? Is there any reference that I can check to have a better understand for this?Erl
Thanks! How does one select multiple columns? Just adding Select(bson.M{"text": 1, "anotherColumn":1}) does not work.Bolection
why it returns intype map[][] ` not as jsonNauplius
D
2

to select multiple fields:

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)
}
Driedup answered 23/2, 2018 at 17:16 Comment(0)
D
0
var result interface{}
err = c.Find(nil).Select(bson.M{"text": 1}).All(&result)

Deputy answered 20/5, 2019 at 2:23 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.