Выберите столбец из Mongodb в golang, используя mgo
Как я знаю, мы можем использовать
> db['twitter-3'].find({}, {"text": 1})
чтобы выбрать все тексты в коллекции.
Как мы можем использовать mgo для поиска определенного поля в golang?
Я попробовал
var result []string
err = conn.Find(bson.M{}, bson.M{"text", 1}).All(&result)
Но это неверно.
Ответы
Ответ 1
Используйте запрос 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)
}
В этом примере я объявил анонимный тип с одним выбранным полем. Это нормально, чтобы использовать тип со всеми полями документа.
Ответ 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)
}
Ответ 3
var result interface{}
err = c.Find(nil).Select(bson.M{"text": 1}).All(&result)