Skip to content

Instantly share code, notes, and snippets.

@dtynn
Last active August 29, 2018 05:32
Show Gist options
  • Save dtynn/b52f0a4c21babbeeafc0 to your computer and use it in GitHub Desktop.
Save dtynn/b52f0a4c21babbeeafc0 to your computer and use it in GitHub Desktop.
mgo query select
package main
import (
"log"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
func main() {
session, err := mgo.Dial("127.0.0.1:27017")
if err != nil {
log.Fatalln(err)
}
datas := []bson.M{
{
"title": "title1",
"content": "content1",
"extend": "extend1",
},
{
"title": "title2",
"content": "content2",
"extend": "extend2",
},
{
"title": "title3",
"content": "content3",
"extend": "extend3",
},
}
c := session.DB("test").C("test-select")
if err := c.Insert(datas[0], datas[1], datas[2]); err != nil {
log.Fatalln(err)
}
result1 := map[string]interface{}{}
if err := c.Find(bson.M{"title": "title1"}).Select(nil).One(&result1); err != nil {
log.Fatalln(err)
}
result2 := map[string]interface{}{}
if err := c.Find(bson.M{"title": "title1"}).Select(bson.M{"content": 1}).One(&result2); err != nil {
log.Fatalln(err)
}
result3 := map[string]interface{}{}
if err := c.Find(bson.M{"title": "title1"}).Select(bson.M{"extend": 1}).One(&result3); err != nil {
log.Fatalln(err)
}
results := []map[string]interface{}{}
if err := c.Find(nil).Select(bson.M{"extend": 1}).All(&results); err != nil {
log.Fatalln(err)
}
log.Println(result1, "\n", result2, "\n", result3, "\n", results)
c.DropCollection()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment