golang操作mongodb的方法
更新時間:2015年02月24日 12:16:56 作者:不吃皮蛋
這篇文章主要介紹了golang操作mongodb的方法,涉及Go語言操作mongodb的連接、讀取及顯示的方法,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了golang操作mongodb的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
復制代碼 代碼如下:
package main
import (
"fmt"
"launchpad.net/mgo"
"launchpad.net/mgo/bson"
)
type Mail struct {
Id bson.ObjectId "_id"
Name string
Email string
}
func main() {
// 連接數(shù)據(jù)庫
session, err := mgo.Dial("127.0.0.1")
if err != nil {
panic(err)
}
defer session.Close()
// 獲取數(shù)據(jù)庫,獲取集合
c := session.DB("test").C("mail")
// 存儲數(shù)據(jù)
m1 := Mail{bson.NewObjectId(), "user1", "user1@dotcoo.com"}
m2 := Mail{bson.NewObjectId(), "user1", "user2@dotcoo.com"}
m3 := Mail{bson.NewObjectId(), "user3", "user3@dotcoo.com"}
m4 := Mail{bson.NewObjectId(), "user3", "user4@dotcoo.com"}
err = c.Insert(&m1, &m2, &m3, &m4)
if err != nil {
panic(err)
}
// 讀取數(shù)據(jù)
ms := []Mail{}
err = c.Find(&bson.M{"name":"user3"}).All(&ms)
if err != nil {
panic(err)
}
// 顯示數(shù)據(jù)
for i, m := range ms {
fmt.Printf("%s, %d, %s\n", m.Id.Hex(), i, m.Email)
}
}
import (
"fmt"
"launchpad.net/mgo"
"launchpad.net/mgo/bson"
)
type Mail struct {
Id bson.ObjectId "_id"
Name string
Email string
}
func main() {
// 連接數(shù)據(jù)庫
session, err := mgo.Dial("127.0.0.1")
if err != nil {
panic(err)
}
defer session.Close()
// 獲取數(shù)據(jù)庫,獲取集合
c := session.DB("test").C("mail")
// 存儲數(shù)據(jù)
m1 := Mail{bson.NewObjectId(), "user1", "user1@dotcoo.com"}
m2 := Mail{bson.NewObjectId(), "user1", "user2@dotcoo.com"}
m3 := Mail{bson.NewObjectId(), "user3", "user3@dotcoo.com"}
m4 := Mail{bson.NewObjectId(), "user3", "user4@dotcoo.com"}
err = c.Insert(&m1, &m2, &m3, &m4)
if err != nil {
panic(err)
}
// 讀取數(shù)據(jù)
ms := []Mail{}
err = c.Find(&bson.M{"name":"user3"}).All(&ms)
if err != nil {
panic(err)
}
// 顯示數(shù)據(jù)
for i, m := range ms {
fmt.Printf("%s, %d, %s\n", m.Id.Hex(), i, m.Email)
}
}
希望本文所述對大家的Go語言程序設計有所幫助。
相關文章
Go中字符串處理?fmt.Sprintf與string.Builder的區(qū)別對比分析
在Go語言中,我們通常會遇到兩種主要的方式來處理和操作字符串:使用fmt.Sprintf函數(shù)和string.Builder類型,本文給大家介紹它們在性能和用法上有一些關鍵區(qū)別,感興趣的朋友跟隨小編一起看看吧2023-11-11Golang中goroutine和channel使用介紹深入分析
一次只做一件事情并不是完成任務最快的方法,一些大的任務可以拆解成若干個小任務,goroutine可以讓程序同時處理幾個不同的任務,goroutine使用channel來協(xié)調它們的工作,channel允許goroutine互相發(fā)送數(shù)據(jù)并同步,這樣一個goroutine就不會領先于另一個goroutine2023-01-01GoFrame框架數(shù)據(jù)校驗之校驗結果Error接口對象
這篇文章主要為大家介紹了GoFrame框架數(shù)據(jù)校驗之校驗結果Error接口對象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06