美文网首页
mongo 一些简单的使用示例

mongo 一些简单的使用示例

作者: SailSea | 来源:发表于2019-04-15 13:25 被阅读0次

使用前需要下载gopkg.in/mgo.v2 包 执行

go get gopkg.in/mgo.v2

示例代码

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "time"
)

//mongo配置信息先放在常量中
const (
    MGO_HOSTS = "127.0.0.1:27017"
    Source    = "sunsea"
    Username  = "sunsea"
    Password  = "sunseaiot"
)

var Mgo *mgo.Session

func init() {
    timeout := 60 * time.Second

    dialInfo := &mgo.DialInfo{
        Addrs:     []string{MGO_HOSTS}, //数据库地址 dbhost: 127.0.0.1:27017
        Timeout:   timeout,             // 连接超时时间 timeout: 60 * time.Second
        Source:    "sunsea",            // 设置权限的数据库 authdb: sunsea
        Username:  "sunsea",            // 设置的用户名 authuser: sunsea
        Password:  "sunseaiot",         // 设置的密码 authpass: sunseaiot
        PoolLimit: 100,                 // 连接池的数量 poollimit: 100
    }

    var err error
    Mgo, err = mgo.DialWithInfo(dialInfo)
    if err != nil {
        fmt.Println("[mgo][init][Error]", err)
        //log.Fatal(err)
    }
}

//例子
func main() {
    c := Mgo.DB("sunsea").C("sunsea") //选择sunsea库的sunsea表

    //增
    if err := c.Insert(map[string]interface{}{"id": 7, "name": "lulu", "age": 25}); err != nil {
        fmt.Println("Error", err)
        return
    }

    //修改匹配的一条数据
    err := c.Update(map[string]interface{}{"age": 25}, map[string]interface{}{"id": 8, "name": "aaaaa", "age": 30})
    if err != nil {
        fmt.Println("Error", err)
        return
    }

    //查询服务条件的第一条数据
    var one map[string]interface{}
    err = c.Find(map[string]interface{}{"id": 8, "name": "aaaaa", "age": 30}).One(&one)
    if err != nil {
        fmt.Println("Error", err)
        return
    }
    fmt.Println("one : ", one)

    //查询服务条件的所有数据
    var all []map[string]interface{}
    err = c.Find(map[string]interface{}{"id": 8, "name": "aaaaa", "age": 30}).All(&all)
    if err != nil {
        fmt.Println("Error", err)
        return
    }
    fmt.Println("all : ", all)

    //查询表内所有数据
    var result []map[string]interface{}
    err = c.Find(nil).All(&result)
    if err != nil {
        fmt.Println("Error", err)
        return
    }
    fmt.Println("result : ", result)

    //删除匹配的所有数据
    info, err := c.RemoveAll(map[string]interface{}{"id": 8, "name": "aaaaa", "age": 30})
    if err != nil {
        fmt.Println("Error", err)
        return
    }
    fmt.Println(info)
}

相关文章

网友评论

      本文标题:mongo 一些简单的使用示例

      本文链接:https://www.haomeiwen.com/subject/djruwqtx.html