web-dev-qa-db-ja.com

mgoを使用してgolangのMongodbから列を選択します

私が知っているように、私たちは使用することができます

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

コレクション内のすべてのテキストを選択します。

Mgoを使用してgolangの特定のフィールドを見つけるにはどうすればよいですか?私は試した

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

しかし、それは正しくありません。

13
Wyatt

クエリ 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)
}

この例では、1つの選択されたフィールドで匿名型を宣言しました。すべてのドキュメントフィールドでタイプを使用しても問題ありません。

22
Cerise Limón

複数のフィールドを選択するには:

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

0
Jyotsna Gupta