golang操作mongodb的方法
更新時(shí)間:2015年02月24日 12:16:56 作者:不吃皮蛋
這篇文章主要介紹了golang操作mongodb的方法,涉及Go語言操作mongodb的連接、讀取及顯示的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了golang操作mongodb的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
復(fù)制代碼 代碼如下:
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語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
Go語言實(shí)現(xiàn)廣播式并發(fā)聊天服務(wù)器
本文主要介紹了Go語言實(shí)現(xiàn)廣播式并發(fā)聊天服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08Golang內(nèi)存泄漏詳解之原因、檢測與修復(fù)過程
本文詳細(xì)介紹了Golang中的內(nèi)存泄漏問題,包括內(nèi)存泄漏的定義、分類、影響以及預(yù)防和修復(fù)方法,通過使用Golang自帶的性能分析工具和火焰圖工具,可以有效地檢測和定位內(nèi)存泄漏的代碼路徑,合理的代碼設(shè)計(jì)和定期的代碼審查也是預(yù)防內(nèi)存泄漏的關(guān)鍵2024-12-12Go中字符串處理?fmt.Sprintf與string.Builder的區(qū)別對比分析
在Go語言中,我們通常會遇到兩種主要的方式來處理和操作字符串:使用fmt.Sprintf函數(shù)和string.Builder類型,本文給大家介紹它們在性能和用法上有一些關(guān)鍵區(qū)別,感興趣的朋友跟隨小編一起看看吧2023-11-11Golang中g(shù)oroutine和channel使用介紹深入分析
一次只做一件事情并不是完成任務(wù)最快的方法,一些大的任務(wù)可以拆解成若干個(gè)小任務(wù),goroutine可以讓程序同時(shí)處理幾個(gè)不同的任務(wù),goroutine使用channel來協(xié)調(diào)它們的工作,channel允許goroutine互相發(fā)送數(shù)據(jù)并同步,這樣一個(gè)goroutine就不會領(lǐng)先于另一個(gè)goroutine2023-01-01GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)結(jié)果Error接口對象
這篇文章主要為大家介紹了GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)結(jié)果Error接口對象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06