简介:

mgo是Go语言操作monggodb数据库的一个驱动,封装了基于Go语法的API

官网地址:http://labix.org/mgo

文档地址:

  • mgo GoDoc GoWalker
  • mgo/bson GoDoc GoWalker
  • mgo/txn GoDoc GoWalker

准备工作:

golang、mongodb安装

git bash安装(用于获取版本库)

示例代码:

package mainimport ("fmt""log""time""gopkg.in/mgo.v2""gopkg.in/mgo.v2/bson"
)type User struct {Id_       bson.ObjectId `bson:"_id"`Name      string        `bson:"name"`Age       int           `bson:"age"`JonedAt   time.Time     `bson:"joned_at"`Interests []string      `bson:"interests"`
}func main() {fmt.Println("This is a test to use mgo for go.")//connect serversession, err := mgo.Dial("")if err != nil {panic(err)} else {fmt.Println("connect success.")}defer session.Close()//connect dbsession.SetMode(mgo.Monotonic, true)db := session.DB("hykj001")//switch collectionc := db.C("people")//inserterr = c.Insert(&User{Id_:       bson.NewObjectId(),Name:      "Jimmy Kuu",Age:       33,JonedAt:   time.Now(),Interests: []string{"Develop", "Movie"},})if err != nil {log.Fatal(err)} else {fmt.Println("insert success.")}//select no conditionvar users []Userc.Find(nil).All(&users)fmt.Println(users)//select one conditionc.Find(bson.M{"name": "Jimmy Kuu"}).All(&users)//name not Namefmt.Println(users)//update alterc.Update(bson.M{"_id": bson.ObjectIdHex("5a911d109c44bc1a30c9472d")},bson.M{"$set": bson.M{"name": "Jimmy Gu","age":  34,}})id := "5a911f559c44bc07a4fc612a"objectId := bson.ObjectIdHex(id)user := new(User)c.Find(bson.M{"_id": objectId}).One(&user)fmt.Println(user)//update addc.Update(bson.M{"_id": bson.ObjectIdHex("5a911f559c44bc07a4fc612a")},bson.M{"$inc": bson.M{"age": -1,}})objectId = bson.ObjectIdHex(id)c.FindId(objectId).One(&user)fmt.Println(user)//add elec.Update(bson.M{"_id": bson.ObjectIdHex("5a911f559c44bc07a4fc612a")},bson.M{"$push": bson.M{"interests": "Golang",}})objectId = bson.ObjectIdHex(id)c.FindId(objectId).One(&user)fmt.Println(user)//del elec.Update(bson.M{"_id": bson.ObjectIdHex("5a911f559c44bc07a4fc612a")},bson.M{"$pull": bson.M{"interests": "Golang",}})objectId = bson.ObjectIdHex(id)c.FindId(objectId).One(&user)fmt.Println(user)//removec.Remove(bson.M{"name": "Jimmy Kuu"})c.Find(nil).All(&users)fmt.Println(users)
}

mgo简介以及使用说明相关推荐

  1. c++中algorithm头文件、STL库简介及使用说明

    c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...

  2. 《社会调查数据管理——基于Stata 14管理CGSS数据》一1.5 本书简介和使用说明...

    本节书摘来自异步社区<社会调查数据管理--基于Stata 14管理CGSS数据>一书中的第1章,第1.5节,作者 唐丽娜,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  3. 探测工具nmap简介及使用说明

    1. 前言: 在前一遍Jmeter模拟多IP访问中,提到当前网络中可用ip,如何查找查看当前可用ip,nmap就是一个不错的开源免费的探测主机是否在网的工具. 另外当我们在构建环境或排查问题时,常常是 ...

  4. ASIHTTPRequest类库简介和使用说明

    使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective ...

  5. VLC简介及使用说明

    From: http://blog.csdn.net/jianxi258/article/details/6006307 一.简介     VLC的全名是Video Lan Client,是一个开源的 ...

  6. 2020.12.10丨cufflinks 简介及使用说明

    一. 简介 Cufflinks下主要包含cufflinks,cuffmerge,cuffcompare和cuffdiff等几支主要的程序.主要用于基因表达量的计算和差异表达基因的寻找. Cufflin ...

  7. Doxygen简介及使用说明

    一.    Doxygen简介 Doxygen是一个程序的文档产生工具,可以将程序中的注释转换成说明文档或者说是API参考手册,从而减少程序员整理文档的时间.当然这里程序中的注释需要遵循一定的规则书写 ...

  8. FileZilla Server简介及使用说明

    很多朋友在实际应用中都可能需要用到FTP Server类的软件,这类软件有很多,比较知名的有Serv-U.G6等,这里向大家介绍一下FileZilla Server,Windows平台下一款不错的FT ...

  9. SQLServer 游标简介与使用说明[转]

    游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力.我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许 ...

最新文章

  1. python爬虫requests-Python爬虫(requests模块)
  2. 【Linux/Ubuntu学习3】解决ubuntu解压windows生成的zip文件时乱码问题
  3. STM8S103 PB4和PB5
  4. 使用Injection Token将字符串类型的参数注入到类的构造函数里
  5. 数据挖掘 点击更多 界面_6(更多)技巧,可快速改善用户界面
  6. java 常量区存放 new_java---堆、栈、常量池的存储数据
  7. SpringBoot指南(七)——SpringBoot整合Mybatis
  8. .Net程序猿玩转Android开发---(11)页面跳转
  9. 自己动手写PHP MVC框架
  10. 基于朴素贝叶斯的定位算法
  11. react-ssr之路由配置
  12. 国学精华,千古绝唱500句
  13. python企业真题实战 - 妙计旅行面试题
  14. 【项目】费曼技巧,终极学习法
  15. 长江雨课堂考试半自动答题python脚本
  16. 系统调用的内核实现,一文讲透open函数内核真实实现。
  17. 可视化|东京奥运会可视化(二)
  18. 旅行家算法(贪心算法)
  19. 19显示文字的区位码
  20. 802.11 无线网络权威指南-第1章 无线网络导论

热门文章

  1. 前端练手项目 HTML 游戏叠高塔(包含源码)
  2. 莘城苑:面包种类选择
  3. ssh时提示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”
  4. 中间件系列——EMQX 的集群搭建
  5. erick recommendation:慕容晓晓《爱情买卖》MV欣赏
  6. CorelDRAW X3 金箔织绣材质特效——金箔绣球(1)
  7. 苹果传奇延续?全面对比解析iPad mini
  8. 平台为王:Microsoft Office System为什么成功?
  9. 苹果13防水吗 苹果13颜色哪个好看
  10. PLC远程监控与数据采集方案