如何在mongodb中使用golang驱动
发表于:2024-10-11 作者:千家信息网编辑
千家信息网最后更新 2024年10月11日,如何在mongodb中使用golang驱动?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用教程如下:导入go get github.c
千家信息网最后更新 2024年10月11日如何在mongodb中使用golang驱动
如何在mongodb中使用golang驱动?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
使用教程如下:
导入
go get github.com/mongodb/mongo-go-driver/mongo
链接mongo服务
if client, err = mongo.Connect(getContext(), url); err != nil { checkErr(err) }
判断服务是否可用
if err = client.Ping(getContext(), readpref.Primary()); err != nil { checkErr(err) }
选择数据库和集合
collection = client.Database("testing_base").Collection("howie")
删除这个集合
collection.Drop(getContext())
插入一条数据
if insertOneRes, err = collection.InsertOne(getContext(), howieArray[0]); err != nil { checkErr(err) } fmt.Printf("InsertOne插入的消息ID:%v\n", insertOneRes.InsertedID)
批量插入数据
if insertManyRes, err = collection.InsertMany(getContext(), howieArray); err != nil { checkErr(err) } fmt.Printf("InsertMany插入的消息ID:%v\n", insertManyRes.InsertedIDs)
查询单条数据
if err = collection.FindOne(getContext(), bson.D{{"name", "howie_2"}, {"age", 11}}).Decode(&howie); err != nil { checkErr(err) } fmt.Printf("FindOne查询到的数据:%v\n", howie)
查询单条数据后删除该数据
if err = collection.FindOneAndDelete(getContext(), bson.D{{"name", "howie_3"}}).Decode(&howie); err != nil { checkErr(err) } fmt.Printf("FindOneAndDelete查询到的数据:%v\n", howie)
询单条数据后修改该数据
if err = collection.FindOneAndUpdate(getContext(), bson.D{{"name", "howie_4"}}, bson.M{"$set": bson.M{"name": "这条数据我需要修改了"}}).Decode(&howie); err != nil { checkErr(err) } fmt.Printf("FindOneAndUpdate查询到的数据:%v\n", howie)
查询单条数据后替换该数据(以前的数据全部清空)
if err = collection.FindOneAndReplace(getContext(), bson.D{{"name", "howie_5"}}, bson.M{"hero": "这条数据我替换了"}).Decode(&howie); err != nil { checkErr(err) } fmt.Printf("FindOneAndReplace查询到的数据:%v\n", howie)
一次查询多条数据(查询createtime>=3,限制取2条,createtime从大到小排序的数据)
if cursor, err = collection.Find(getContext(), bson.M{"createtime": bson.M{"$gte": 2}}, options.Find().SetLimit(2), options.Find().SetSort(bson.M{"createtime": -1})); err != nil { checkErr(err) } if err = cursor.Err(); err != nil { checkErr(err) } defer cursor.Close(context.Background()) for cursor.Next(context.Background()) { if err = cursor.Decode(&howie); err != nil { checkErr(err) } howieArrayEmpty = append(howieArrayEmpty, howie) } fmt.Printf("Find查询到的数据:%v\n", howieArrayEmpty)
查询集合里面有多少数据
if size, err = collection.Count(getContext(), nil); err != nil { checkErr(err) } fmt.Printf("Count里面有多少条数据:%d\n", size)
查询集合里面有多少数据(查询createtime>=3的数据)
if size, err = collection.Count(getContext(), bson.M{"createtime": bson.M{"$gte": 3}}); err != nil { checkErr(err) } fmt.Printf("Count里面有多少条数据:%d\n", size)
修改一条数据
if updateRes, err = collection.UpdateOne(getContext(), bson.M{"name": "howie_2"}, bson.M{"$set": bson.M{"name": "我要改了他的名字"}}); err != nil { checkErr(err) } fmt.Printf("UpdateOne的数据:%d\n", updateRes)
修改多条数据
if updateRes, err = collection.UpdateMany(getContext(), bson.M{"createtime": bson.M{"$gte": 3}}, bson.M{"$set": bson.M{"name": "我要批量改了他的名字"}}); err != nil { checkErr(err) } fmt.Printf("UpdateMany的数据:%d\n", updateRes)
删除一条数据
if delRes, err = collection.DeleteOne(getContext(), bson.M{"name": "howie_1"}); err != nil { checkErr(err) } fmt.Printf("DeleteOne删除了多少条数据:%d\n", delRes.DeletedCount)
删除多条数据
if delRes, err = collection.DeleteMany(getContext(), bson.M{"createtime": bson.M{"$gte": 7}}); err != nil { checkErr(err) } fmt.Printf("DeleteMany删除了多少条数据:%d\n", delRes.DeletedCount)
看完上述内容,你们掌握如何在mongodb中使用golang驱动的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
数据
查询
多条
驱动
内容
名字
我要
方法
更多
消息
问题
服务
束手无策
为此
原因
对此
技能
教程
数据库
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器Dell取消raid
龙源数据库有用吗
武汉淘宝客软件开发
海淀区网络安全进展
为什么商品不能写入数据库
网络安全手抄报模板ins风
个人电脑可以做成服务器吗
博图服务器管理
教师 网络安全培训
银川市网络安全应急中心
前端代理服务器在哪里启动的
三级计算机网络技术刷题库
数据库接口技术图解
饥荒云 服务器
洪泽软件开发
甘肃法院网络安全
敏捷数据库新闻
软件开发如何进行成本控制
软件开发合同 税费
会计信息化网络安全威胁
网络技术主管负责什么
数据库访问慢
歌词下载软件开发
er图减少数据库连接开销
数据库的查阅列表为固定值
网络技术服务是指具体什么服务
藁城区网络安全建设
成都大学的服务器地址
非关系数据库基本语法特点
教育和网络技术中心