golang操作mongodb

转载 2013年12月04日 15:46:21
所需包engine

import (
    "fmt"
    "sync"
    "engine/mgo"
    "engine/mgo/bson"
)

var (
    session *mgo.Session
    db      *mgo.Database
    c       *mgo.Collection
    mux     sync.Mutex
)

func init() {
    mux.Lock()
    defer mux.Unlock()

    if session != nil {
        return
    }

    // new session
    session, err := mgo.Dial("192.168.0.229:27017")
    checkErr("dial fail", err)

    session.SetMode(mgo.Monotonic, true)

    // new db
    if db != nil {
        return
    }
    db = session.DB("Test")

    // new collection
    if c != nil {
        return
    }
    c = db.C("person")
}

func checkErr(data string, err error) {
    if err != nil {
        fmt.Println(data + ": " + err.Error())
    }
}

type Person struct {
    Name  string
    Email string
}

func New() *Person {
    return &Person{
        Name:  "zhangbaolang",
        Email: "zhagnbaoliang.vip@gmail.com",
    }
}

func main() {

    // insert
    err := c.Insert(New())
    checkErr("insert fail", err)

    // find
    m := bson.M{"name": "zhangbaolang"}

    query := c.Find(m)

    // one
    person := Person{}
    err = query.One(&person)
    //fmt.Println(person.Name)
    checkErr("query fail", err)

    fmt.Println(person.Email)

    if session != nil {
        session.Close()
    }
}

相关文章推荐

Go实战--golang中使用MongoDB(mgo)

生命不止,继续 go go go !!!昨天分享了golang如何操作redis数据库,那今天就介绍一下golang中如何使用mongodb数据库。何为MongoDB?简介 MongoDB 是由C+...

MongoDB 增删改查与 Golang 的语法实现

这篇文章主要建设 MongDb 中的增删改成与在 Golang 中的具体实现
  • netdxy
  • netdxy
  • 2017年02月06日 16:27
  • 1076

golang 使用mgo 连接MongoDB

golang访问MongoDB数据库。

MongoDB的golang驱动安装 + 首次调用Mongo Command。

MongoDB的golang驱动安装 + 首次调用Mongo Command。 /** @author 908204694@qq.com */
  • ribavnu
  • ribavnu
  • 2016年06月12日 10:19
  • 423

Golang同步:原子操作使用

原子操作即是进行过程中不能被中断的操作。针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。 为了实现这样的严谨性,原子操作仅会由一个独立的CPU指令代表和完成。GO...

golang利用模板生成数据库表对应的模型及操作函数

golang利用模板生成数据库表对应的模型及操作 那个时候也没有想到可以从数据库中读取到目标表的表结构数据自动生成ORM需要的模型结构。直到有一天我看到一个根据模板自动生成ORM的模型文件的代码,然...

golang zip 操作示例

下面的代码,来之golang的示例源码,其中涉及的常见zip文件,修改了部分代码, 在ExampleWriter中添加了如下 fw, err := os.Create("/home/xxx/mem...

Golang + MYSQL + Bee 数据库连接和操作

// tsetMysql project main.go package main import ( "strings" "time" "github.com/astaxie/beego/o...

Golang--string操作

string到int int, err := strconv.Atoi(string) string到int64 int64, err := string.ParseInt(string, 10,...

Golang数据库操作

Golang对于数据库操作的基本支持
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:golang操作mongodb
举报原因:
原因补充:

(最多只允许输入30个字)