mgo操作mongodb

Posted 堕落门徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mgo操作mongodb相关的知识,希望对你有一定的参考价值。

mgo基本使用:

http://labix.org/mgo

安装

# go get gopkg.in/mgo.v2
package main

import (
        "fmt"
    "log"
        "gopkg.in/mgo.v2"
        "gopkg.in/mgo.v2/bson"
)

type Person struct {
        Name string
        Phone string
}

func main() {
        //mongodb连接uri
        //格式为[mongodb://][user:[email protected]]host1[:port1][,host2[:port2],...][/database][?options]
        session, err := mgo.Dial("mongodb://cord:[email protected]:27010/keymap")
        if err != nil {
                panic(err)
        }
        defer session.Close()

        // Optional. Switch the session to a monotonic behavior.
        session.SetMode(mgo.Monotonic, true)

        c := session.DB("test").C("people")
        
        //增加记录
        err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
                   &Person{"Cla", "+55 53 8402 8510"})
        if err != nil {
                log.Fatal(err)
        }
        result := Person{}
        //普通查询
        err = c.Find(bson.M{"name": "Ale"}).One(&result)
        //正则匹配(模糊查询),其中"$options":"$i"表示忽略大小写
        //regexStr = "A" 
        //err = c.Find(bson.M{"name":bson.M{"$regex" : regexStr, "$options":"$i"}}).All(&result)
        if err != nil {
                log.Fatal(err)
        }
        fmt.Println("Phone:", result.Phone)
        
        //删除记录
        err = c.Remove(bson.M{"name":"Ale"})  //删除单条,如果有多条,默认顺序第一条
    _, err = c.RemoveAll(bson.M{"name":"Ale"}) //删除所有查找的
    if err != nil {
            fmt.Println(err)
    }
}

以上是关于mgo操作mongodb的主要内容,如果未能解决你的问题,请参考以下文章

mgo 和 mongodb 的 i/o 超时

PICE:MongoDBStreaming - gRPC -MGO Service

如何使用 Go 驱动程序或 mgo/qmgo 在 MongoDB 中存储地理空间数据?

使用 mgo 将数据插入 MongoDB

带有 mgo 驱动程序的 MongoDB 管理命令

Golang mongodb 从集合中删除所有项目 [mgo.v2]