当前位置:首页 » Python程序 » 应用go在mangodb中开展CRUD操作

应用go在mangodb中开展CRUD操作

309°c 2021年04月20日 08:24 Python程序 0条评论
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

我还在学习培训go语言表达以前,在对数据库开展CRUD的操作基本上是用java和sql来对mysql数据库开展操作,可是到见习中公司业务全是用的是mangodb,根据一段学习时间后,我有了一些获得。

概述关系型数据库,非关系型数据库

关系型数据库:指选用了关系实体模型来机构数据信息的数据库。
关系实体模型指的便是二维表格实体模型,而一个关系型数据库便是由二维表以及中间的联络所构成的一个数据组织

非关系型数据库

非关系型数据库:指非关系型的,分布式系统的,且一般不确保遵照 ACID 标准的数据信息分布式存储。

它是较为标准的叫法,实际这二者算不上谁优谁劣,分别有分别的应用情景。

实际上能够 粗鲁的了解成一个关系型数据库基本上靠应用sql语句来操作,并非关系型数据信息靠key-value来开展操作

(实际上按我的了解非关系型数据库严苛上并不是一种数据库,应该是一种算法设计化储存方式的结合,能够 是文本文档或是键值对等,可是我也不知道那么说是不是恰当)

MangoDB

好啦,上边概述了一下关系型和非关系型数据库,下边而言一下今日文章内容的主人公。

mangodb

MongoDB 将数据储存为一个文本文档,算法设计由键值(key=>value)对构成。MongoDB 文本文档类似 JSON 目标。字段名值能够 包括别的文本文档,二维数组及文本文档二维数组。

因此mangodb操作也是根据json(bson)文件格式来操作

 

那麼go语言表达中是怎样来操作mangodb

(1)数据库联接

数据库联接关键采用了mgo中的Dial()涵数,联接方式如mgo.Dial(url1,url2,url3),实际编码以下:

func ConnecToDB() *mgo.Collection {
 session, err := mgo.Dial("127.0.0.1:27017")
 if err != nil {
 panic(err)
 }
 //defer session.Close()
 session.SetMode(mgo.Monotonic, true)
 c := session.DB("medex").C("student")
 return c
}

(2)插进

func InsertToMogo() {
 c := ConnecToDB()
 stu1 := Student{
 Name: "xiaoming",
 Phone: "18933333333",
 Email: "[email protected]",
 Sex: "man",
 }
 stu2 := Student{
 Name: "zhangdao",
 Phone: "8765432",
 Email: "[email protected]",
 Sex: "woman",
 }
 err := c.Insert(&stu1, &stu2)
 if err != nil {
 log.Fatal(err)
 }
}

(3)查看

func GetDataViaSex() {
 c := ConnecToDB()
 result := Student{}
 err := c.Find(bson.M{"sex": "woman"}).One(&result)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println("student", result)
 students := make([]Student, 20)
 err = c.Find(nil).All(&students)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println(students)

}
func GetDataViaId() {
 id := bson.ObjectIdHex("5a66a96306d2a40a8b884049")
 c := ConnecToDB()
 stu := &Student{}
 err := c.FindId(id).One(stu)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println(stu)
}

这上边用了二种如何查询一种是查看好几个,回到好几个目标:many

另一种是查看单独,回到单独目标:one

(4)升级

func UpdateDBViaId() {
 //id := bson.ObjectIdHex("5a66a96306d2a40a8b884049")
 c := ConnecToDB()
 err := c.Update(bson.M{"email": "[email protected]"}, bson.M{"$set": bson.M{"name": "haha", "phone": "37848"}})
 if err != nil {
 log.Fatal(err)
 }
}

(5)删掉

func RemoveFromMgo() {
 c := ConnecToDB()
 _, err := c.RemoveAll(bson.M{"phone": "13480989765"})
 if err != nil {
 log.Fatal(err)
 }
}

小结

之上上述是我给大伙儿详细介绍的应用go在mangodb中开展CRUD操作,期待对大伙儿有一定的协助,假如大伙儿有一切有意者帮我留言板留言,我会立即回应大伙儿的。在这里也特别感谢大伙儿对大家网址的适用!
如果你觉得文中对您有协助,热烈欢迎转截,劳烦标明出處,感谢!

欢迎阅读本文,希望本文对您有所帮助!

本文链接:http://www.cqrxzs.com/3851.html

版权声明:本文为原创文章,版权归 雨凡教育 所有,欢迎分享本文,转载请保留出处!

百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!

评论(0) 赞助本站

发表评论:


【顶】 【踩】 【好】 【懵】 【赞】 【表情】

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

推荐阅读
04月21日

Python应用tkinter模块完成推箱子游戏

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 4877次

前段时间用C语言做了个字符版的推箱子,着实是比较简陋。正好最近用到了Python,然后想着用Python做一个图形界面的推箱子。这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找了一大堆教材,最后选择了tkinter,没什么特别的原因,只是因为网上说的多。 接下来就来和大家分享一下,主要分享两点,第一就是这个程序的实现过程,第二点就是我在编写过程中的一些思考。 一、介绍 开发语言:Python 3.7 开发工具:PyCharm 2019.2.4 日期:2019年10月2...

04月20日

python内置函数sorted()用法深入分析

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 340次

文中案例叙述了python内置函数sorted()用法。共享给大伙儿供大伙儿参照,实际以下: 列表目标出示了sort()方式适用原地排序,而内置函数sorted()不兼容原地实际操作仅仅回到新的列表,并不对原列表开展一切改动。sorted()方式能够 对列表、元组、词典、range目标等开展排序。列表的sort()方式和内置函数sorted()都适用key主要参数完成繁杂排序规定。 #应用key来特定排序根据,先按名字降序排序,名字同样的按年纪降序排序 >>> person...

04月20日

python生成器推导式用法简易示例

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 342次

文中案例叙述了python生成器推导式用法。共享给大伙儿供大伙儿参照,实际以下: 1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速率更快,占有的运行内存也越来越少。 2.应用生成器目标时,能够 依据必须将他转换为目录或是元组,还可以是哟个生成器对像__next__()方式或内嵌涵数next()开展遍历,其具备可塑性求值的特性,开展一次遍历后便不可以再度方向內部原素,即浏览一次立刻清除生成器目标 >>> g = ((i 2)**2 for i in...

04月20日

Django完成文件网页上传

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 315次

文中案例为大伙儿共享了Django完成文件提交下载的实际编码,供大伙儿参照,主要内容以下 一、django完成文件下载 (1)、后台管理插口 假如从服务器立即将文件途径发送给电脑浏览器,一般文件能够 立即下载,而照片,html,css和pdf格式等文件会立即表明,因此解决方案便是在头文件中让文件流载入电脑硬盘. ①、非常简单的文件下载作用的完成,立即将文件流放进HttpResponse对象就可以 def file_download(request): # do something......

04月20日

应用go在mangodb中开展CRUD操作

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 309次

我还在学习培训go语言表达以前,在对数据库开展CRUD的操作基本上是用java和sql来对mysql数据库开展操作,可是到见习中公司业务全是用的是mangodb,根据一段学习时间后,我有了一些获得。 概述关系型数据库,非关系型数据库 关系型数据库:指选用了关系实体模型来机构数据信息的数据库。 关系实体模型指的便是二维表格实体模型,而一个关系型数据库便是由二维表以及中间的联络所构成的一个数据组织 非关系型数据库 非关系型数据库:指非关系型的,分布式系统的,且一般不确保遵照 ACID 标准的数据...

04月20日

ubuntu上安装python的实例方法

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 298次

怎样在ubuntu安装python? python在ubuntu下有几种安装方式: ● 根据ubuntu官方网的apt工具包安装 ● 根据PPA(Personal Package Archive) 的apt工具包安装 ● 根据编译程序python源码安装 根据ubuntu官方网的apt工具包安装 sudo apt-get install python2.7 sudo apt-get install python3.4 安装进行后,可以用下边的指令开展确定 [email protect...

04月20日

Python3 无反复字符的最多子串的完成

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 284次

题型: 给出一个字符串,你要找到在其中不带有反复字符的 最多子串 的长度。 示例: 示例 1: 键入: “abcabcbb” 输出: 3 表述: 由于无反复字符的最多子串是 “abc”,因此其长度为 3。 示例 2: 键入: “bbbbb” 输出: 1 表述: 由于无反复字符的最多子串是 “b”,因此其长度为 1。 示例 3: 键入: “pwwkew” 输出: 3 表述: 由于无反复字符的最多子串是 “wke”,因此其长度为 3。 一定要注意,你的答案务必是 子串 的长度,“pwke...

04月20日

Django完成文件上传和下载功能

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 290次

文中案例为大伙儿共享了Django下进行文件提交和下载作用的实际编码,供大伙儿参照,具体内容以下 一、文件提交 Views.py def upload(request): if request.method == "POST": # 要求方式为POST时,开展解决 myFile = request.FILES.get("myfile", None) # 获得提交的文件,如果没有文件,则默认设置为None if not myFile: return HttpResponse("no f...

您好,欢迎到访网站!
  查看权限