分享
  1. 首页
  2. 文章

golang学习之mgo操作mongodb

caiya928 · · 7201 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

mgo是mongodb的golang驱动,测试代码:

// mgotest project main.go
package main
import (
 "fmt"
 "time"
 "gopkg.in/mgo.v2"
 "gopkg.in/mgo.v2/bson"
)
type User struct {
 Id bson.ObjectId `bson:"_id"`
 Username string `bson:"name"`
 Pass string `bson:"pass"`
 Regtime int64 `bson:"regtime"`
 Interests []string `bson:"interests"`
}
const URL String = "127.0.0.1:27017"
var c *mgo.Collection
var session *mgo.Session
func (user User) ToString() string {
 return fmt.Sprintf("%#v", user)
}
func init() {
 session, _ = mgo.Dial(URL)
 //切换到数据库
 db := session.DB("blog")
 //切换到collection
 c = db.C("mgotest")
}
//新增数据
func add() {
 // defer session.Close()
 stu1 := new(User)
 stu1.Id = bson.NewObjectId()
 stu1.Username = "stu1_name"
 stu1.Pass = "stu1_pass"
 stu1.Regtime = time.Now().Unix()
 stu1.Interests = []string{"象棋", "游泳", "跑步"}
 err := c.Insert(stu1)
 if err == nil {
 fmt.Println("插入成功")
 } else {
 fmt.Println(err.Error())
 defer panic(err)
 }
}
//查询
func find() {
 // defer session.Close()
 var users []User
 // c.Find(nil).All(&users)
 c.Find(bson.M{"name": "stu1_name"}).All(&users)
 for _, value := range users {
 fmt.Println(value.ToString())
 }
 //根据ObjectId进行查询
 idStr := "577fb2d1cde67307e819133d"
 objectId := bson.ObjectIdHex(idStr)
 user := new(User)
 c.Find(bson.M{"_id": objectId}).One(user)
 fmt.Println(user)
}
//根据id进行修改
func update() {
 interests := []string{"象棋", "游泳", "跑步"}
 err := c.Update(bson.M{"_id": bson.ObjectIdHex("577fb2d1cde67307e819133d")}, bson.M{"$set": bson.M{
 "name": "修改后的name",
 "pass": "修改后的pass",
 "regtime": time.Now().Unix(),
 "interests": interests,
 }})
 if err != nil {
 fmt.Println("修改失败")
 } else {
 fmt.Println("修改成功")
 }
}
//删除
func del() {
 err := c.Remove(bson.M{"_id": bson.ObjectIdHex("577fb2d1cde67307e819133d")})
 if err != nil {
 fmt.Println("删除失败" + err.Error())
 } else {
 fmt.Println("删除成功")
 }
}
func main() {
 add()
 find()
 update()
 del()
}

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:caiya928

查看原文:golang学习之mgo操作mongodb

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
7201 次点击
5 回复 | 直到 2019年06月28日 09:43:53
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏