This is a creation in Article, where the information may have evolved or changed. Required Package engine
Import(
"FMT"
"Sync"
"Engine/mgo"
"Engine/mgo/bson"
)
var(
Session*MgO. Session
db *MgO. Database
C *MgO. Collection
mux sync. Mutex
)
Funcinit (){
mux. Lock()
defermux. Unlock()
if Session! =Nil {
return
}
//Newsession
session,err: =MgO. Dial("192.168.0.229:27017")
checkerr("Dialfail",err)
session. SetMode(MgO. Monotonic,true)
//newdb
if db! =Nil {
return
}
db=session. DB("Test")
//newcollection
if c! =Nil {
return
}
c=db. C("person")
}
Funccheckerr (datastring,err Error ){
     if err != Span style= "COLOR: #c0c0c0" > nil Span style= "COLOR: #000000" >{
fmt. Println(data+":" + err. Error())
}
}
Typeperson struct{
Name string
Emailstring
}
FuncNew ()*person{
return&person{
Name: "Zhangbaolang",
Email:"zhagnbaoliang.vip@gmail.com",
}
}
FuncMain (){
//Insert
Err: =c. Insert(New())
checkerr("Insertfail",err)
//Find
m: =bson. M{"name":"Zhangbaolang"}
Query: =c. Find(m)
// One
Person: = person {}
err=query. One(&person)
//fmt. Println (person. Name)
checkerr("Queryfail",err)
fmt. Println(person. Email)
if Session! =Nil {
session. Close()
}
}