校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mongodb官方的golang驅(qū)動基礎使用教程分享

mongodb官方的golang驅(qū)動基礎使用教程分享

熱門標簽:河南電話外呼系統(tǒng)招商 crm外呼系統(tǒng)聯(lián)系方式 內(nèi)蒙古營銷智能外呼系統(tǒng)哪個好 呼和浩特外呼系統(tǒng)原理是什么 外呼線路資源屬于電信業(yè)務嗎 長沙電銷外呼防封卡是什么 青白江400企業(yè)電話申請 智能外呼系統(tǒng)官網(wǎng) 小裙科技電銷機器人怎樣

前言

mongo數(shù)據(jù)庫在nodejs平臺有2個常用驅(qū)動,mongodb和mongoose,mongodb接口非常接近mongo數(shù)據(jù)庫原生的操作方式,是helloworld之類演示代碼的首選mongo數(shù)據(jù)庫連接驅(qū)動,因此成為大部分nodejs初學者最先接觸的mongo數(shù)據(jù)庫驅(qū)動。初學者在學會mongo連接的同時,卻也可悲的被helloword這種演示性質(zhì)的數(shù)據(jù)庫操作習慣潛移默化了。

本文主要介紹的是關于mongodb官方的golang驅(qū)動使用的相關內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧

使用教程如下:

導入

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)
 }

選擇數(shù)據(jù)庫和集合

collection = client.Database("testing_base").Collection("howie")

刪除這個集合

collection.Drop(getContext())

插入一條數(shù)據(jù)

if insertOneRes, err = collection.InsertOne(getContext(), howieArray[0]); err != nil {
  checkErr(err)
 }
 fmt.Printf("InsertOne插入的消息ID:%v\n", insertOneRes.InsertedID)

批量插入數(shù)據(jù)

if insertManyRes, err = collection.InsertMany(getContext(), howieArray); err != nil {
  checkErr(err)
 }
 fmt.Printf("InsertMany插入的消息ID:%v\n", insertManyRes.InsertedIDs)

查詢單條數(shù)據(jù)

if err = collection.FindOne(getContext(), bson.D{{"name", "howie_2"}, {"age", 11}}).Decode(howie); err != nil {
  checkErr(err)
 }
 fmt.Printf("FindOne查詢到的數(shù)據(jù):%v\n", howie)

查詢單條數(shù)據(jù)后刪除該數(shù)據(jù)

if err = collection.FindOneAndDelete(getContext(), bson.D{{"name", "howie_3"}}).Decode(howie); err != nil {
  checkErr(err)
 }
 fmt.Printf("FindOneAndDelete查詢到的數(shù)據(jù):%v\n", howie)

詢單條數(shù)據(jù)后修改該數(shù)據(jù)

if err = collection.FindOneAndUpdate(getContext(), bson.D{{"name", "howie_4"}}, bson.M{"$set": bson.M{"name": "這條數(shù)據(jù)我需要修改了"}}).Decode(howie); err != nil {
  checkErr(err)
 }
 fmt.Printf("FindOneAndUpdate查詢到的數(shù)據(jù):%v\n", howie)

查詢單條數(shù)據(jù)后替換該數(shù)據(jù)(以前的數(shù)據(jù)全部清空)

if err = collection.FindOneAndReplace(getContext(), bson.D{{"name", "howie_5"}}, bson.M{"hero": "這條數(shù)據(jù)我替換了"}).Decode(howie); err != nil {
  checkErr(err)
 }
 fmt.Printf("FindOneAndReplace查詢到的數(shù)據(jù):%v\n", howie)

一次查詢多條數(shù)據(jù)(查詢createtime>=3,限制取2條,createtime從大到小排序的數(shù)據(jù))

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查詢到的數(shù)據(jù):%v\n", howieArrayEmpty)

查詢集合里面有多少數(shù)據(jù)

if size, err = collection.Count(getContext(), nil); err != nil {
  checkErr(err)
 }
 fmt.Printf("Count里面有多少條數(shù)據(jù):%d\n", size)

查詢集合里面有多少數(shù)據(jù)(查詢createtime>=3的數(shù)據(jù))

if size, err = collection.Count(getContext(), bson.M{"createtime": bson.M{"$gte": 3}}); err != nil {
  checkErr(err)
 }
 fmt.Printf("Count里面有多少條數(shù)據(jù):%d\n", size)

修改一條數(shù)據(jù)

if updateRes, err = collection.UpdateOne(getContext(), bson.M{"name": "howie_2"}, bson.M{"$set": bson.M{"name": "我要改了他的名字"}}); err != nil {
  checkErr(err)
 }
 fmt.Printf("UpdateOne的數(shù)據(jù):%d\n", updateRes)

修改多條數(shù)據(jù)

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的數(shù)據(jù):%d\n", updateRes)

刪除一條數(shù)據(jù)

if delRes, err = collection.DeleteOne(getContext(), bson.M{"name": "howie_1"}); err != nil {
  checkErr(err)
 }
 fmt.Printf("DeleteOne刪除了多少條數(shù)據(jù):%d\n", delRes.DeletedCount)

刪除多條數(shù)據(jù)

if delRes, err = collection.DeleteMany(getContext(), bson.M{"createtime": bson.M{"$gte": 7}}); err != nil {
  checkErr(err)
 }
 fmt.Printf("DeleteMany刪除了多少條數(shù)據(jù):%d\n", delRes.DeletedCount)

完整演示代碼 點擊這里

查看mongo BSON詳細用法 點擊這里

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Golang Mongodb模糊查詢的使用示例
  • golang 連接mongoDB的方法示例
  • Golang對MongoDB數(shù)據(jù)庫的操作簡單封裝教程
  • golang操作mongodb的方法
  • 詳解Golang使用MongoDB通用操作

標簽:黃石 呼倫貝爾 舟山 菏澤 安順 池州 白山 楚雄

巨人網(wǎng)絡通訊聲明:本文標題《mongodb官方的golang驅(qū)動基礎使用教程分享》,本文關鍵詞  mongodb,官方,的,golang,驅(qū)動,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mongodb官方的golang驅(qū)動基礎使用教程分享》相關的同類信息!
  • 本頁收集關于mongodb官方的golang驅(qū)動基礎使用教程分享的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 天长市| 淮安市| 井冈山市| 微山县| 凤凰县| 娱乐| 西华县| 百色市| 池州市| 东丽区| 固原市| 五台县| 崇文区| 巫山县| 望都县| 吴川市| 左权县| 鲜城| 泰宁县| 通海县| 永胜县| 民和| 德惠市| 井冈山市| 灵山县| 荃湾区| 永靖县| 综艺| 嘉峪关市| 广宗县| 航空| 得荣县| 南乐县| 宜兴市| 巴马| 贵溪市| 齐河县| 舒兰市| 宁城县| 平邑县| 兴宁市|