久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在mongodb中使用golang驅動

148次閱讀
沒有評論

共計 3214 個字符,預計需要花費 9 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

如何在 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 驅動的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3214字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 永登县| 峨眉山市| 乐亭县| 大余县| 宁武县| 连平县| 和硕县| 胶州市| 来凤县| 冕宁县| 沁源县| 淳化县| 萨嘎县| 分宜县| 蓝山县| 新邵县| 华池县| 巴青县| 广西| 武功县| 比如县| 清水县| 同德县| 玉山县| 都兰县| 四会市| 磐安县| 桃江县| 永嘉县| 德格县| 乌拉特前旗| 洪湖市| 五华县| 怀仁县| 西宁市| 栾川县| 雷山县| 綦江县| 西昌市| 红原县| 普兰店市|