doufan9290
doufan9290
2015-06-29 13:05

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

已采纳

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • dongxie2756 dongxie2756 6年前

    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.

    点赞 评论 复制链接分享
  • doumu8911 doumu8911 2年前
    var result interface{}
    err = c.Find(nil).Select(bson.M{"text": 1}).All(&result)
    
    
    点赞 评论 复制链接分享
  • doubo3384 doubo3384 3年前

    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)
    }
    
    点赞 评论 复制链接分享

相关推荐