首页 / MONGODB / 知识点 go操作mongodb
知识点 go操作mongodb
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了知识点 go操作mongodb,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2767字,纯文字阅读大概需要4分钟。
内容图文
![知识点 go操作mongodb](/upload/InfoBanner/zyjiaocheng/1235/633e97e9e3bc4113ae4411343535c481.jpg)
import (
"fmt"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"log"
)
在示例中用到的结构有:
type Student struct {
Id_ bson.ObjectId bson:"_id"
Name string bson:"name"
Phone string bson:"phone"
Email string bson:"email"
Sex string bson:"sex"
}
一、数据库连接
数据库连接主要用到了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
}
二、插入
插入主要用到了函数 func (c *Collection) Insert(docs ...interface{}) error
下面是我插入的两条记录
func InsertToMogo() {
c := ConnecToDB()
stu1 := Student{
Name: "zhangsan",
Phone: "13480989765",
Email: "329832984@qq.com",
Sex: "F",
}
stu2 := Student{
Name: "liss",
Phone: "13980989767",
Email: "12832984@qq.com",
Sex: "M",
}
err := c.Insert(&stu1, &stu2)
if err != nil {
log.Fatal(err)
}
}
通过可视化工具可以看到我插入的数据
{
"_id" : ObjectId("5a66a96306d2a40a8b884049"),
"name" : "zhangsan",
"phone" : "13480989765",
"email" : "329832984@qq.com",
"sex" : "F"
}
{
"_id" : ObjectId("5a66a96306d2a40a8b88404a"),
"name" : "liss",
"phone" : "13980989767",
"email" : "12832984@qq.com",
"sex" : "M"
}
三、查询
查询单个主要用到了func (c *Collection) Find(query interface{}) *Query函数,
查询单个和多个主要用到了One()和Many()函数,条件组合可以查看mongDB数据库使用
func GetDataViaSex() {
c := ConnecToDB()
result := Student{}
err := c.Find(bson.M{"sex": "M"}).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)
}
查询所有形如:c.Find(nil).Many(&results)
另外,方法中也有个根据id来查询的方法 func (c *Collection) FindId(id interface{}) *Query,
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)
}
三、更新
更新通过函数
*func (c *Collection) Update(selector interface{}, update interface{}) error
*func (c *Collection) UpdateAll(selector interface{}, update interface{}) (info *ChangeInfo, err error)
*func (c *Collection) UpdateId(id interface{}, update interface{}) error
func UpdateDBViaId() {
//id := bson.ObjectIdHex("5a66a96306d2a40a8b884049")
c := ConnecToDB()
err := c.Update(bson.M{"email": "12832984@qq.com"}, bson.M{"$set": bson.M{"name": "haha", "phone": "37848"}})
if err != nil {
log.Fatal(err)
}
}
四、删除
删除对应的方法
func (c *Collection) Remove(selector interface{}) error]
func (c *Collection) RemoveAll(selector interface{}) (info *ChangeInfo, err error)
func (c *Collection) RemoveId(id interface{}) error
func RemoveFromMgo() {
c := ConnecToDB()
_, err := c.RemoveAll(bson.M{"phone": "13480989765"})
if err != nil {
log.Fatal(err)
}
}
原文:https://www.cnblogs.com/chu-12345/p/11368945.html
内容总结
以上是互联网集市为您收集整理的知识点 go操作mongodb全部内容,希望文章能够帮你解决知识点 go操作mongodb所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。