最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年12月12日 10:42:45   作者:howie_鯨落  
這篇文章主要給大家介紹了關(guān)于mongodb官方的golang驅(qū)動基礎(chǔ)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用mongodb具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

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

使用教程如下:

導(dǎo)入

go get github.com/mongodb/mongo-go-driver/mongo

鏈接mongo服務(wù)

if client, err = mongo.Connect(getContext(), url); err != nil {
  checkErr(err)
 }

判斷服務(wù)是否可用

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詳細用法 點擊這里

總結(jié)

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

相關(guān)文章

  • windows下mongodb安裝與使用圖文教程(整理)

    windows下mongodb安裝與使用圖文教程(整理)

    這篇文章主要介紹了windows下mongodb安裝與使用圖文教程(整理)的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • mongodb增量備份腳本的實現(xiàn)和原理詳解

    mongodb增量備份腳本的實現(xiàn)和原理詳解

    MongoDB本身不支持增量備份,所以這里介紹我找到的方法,下面這篇文章主要給大家介紹了關(guān)于mongodb增量備份腳本的實現(xiàn)和原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • MongoDB各種查詢操作詳解

    MongoDB各種查詢操作詳解

    這篇文章主要介紹了MongoDB各種查詢操作詳解,包括比較查詢、關(guān)聯(lián)查詢、數(shù)組查詢等,需要的朋友可以參考下
    2014-03-03
  • MongoDB修改數(shù)據(jù)的2種方法

    MongoDB修改數(shù)據(jù)的2種方法

    這篇文章主要介紹了MongoDB修改數(shù)據(jù)的2種方法,需要的朋友可以參考下
    2014-05-05
  • mongodb 數(shù)據(jù)庫操作詳解--創(chuàng)建,切換,刪除

    mongodb 數(shù)據(jù)庫操作詳解--創(chuàng)建,切換,刪除

    mongodb是nosql里面最像關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫。單表操作,基本上可以和關(guān)系型數(shù)據(jù)庫差不多。mongodb比較易學(xué),易用,分幾期記錄一下,學(xué)習(xí)和使用mongodb過程。
    2014-07-07
  • MongoDB運行狀態(tài)監(jiān)控、性能分析工具mongostat詳解

    MongoDB運行狀態(tài)監(jiān)控、性能分析工具mongostat詳解

    這篇文章主要介紹了MongoDB運行狀態(tài)監(jiān)控、性能分析工具mongostat詳解,mongostat是mongdb自帶的狀態(tài)檢測工具,在命令行下使用,它會間隔固定時間獲取mongodb的當(dāng)前運行狀態(tài),并輸出,本文詳細講解了它的使用,需要的朋友可以參考下
    2015-07-07
  • MongoDB中的bson介紹和使用實例

    MongoDB中的bson介紹和使用實例

    這篇文章主要介紹了MongoDB中的bson介紹和使用實例,本文講解了什么是bson、bson在MongoDB中的使用、幾個BSON的例子等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • MongoDB安全配置詳解

    MongoDB安全配置詳解

    這篇文章主要介紹了MongoDB安全配置詳解,本文來自國內(nèi)安全廠商烏云平臺,講解的還是比較全面的,需要的朋友可以參考下
    2015-05-05
  • mongodb中根據(jù)時間過濾進行查詢的操作方法

    mongodb中根據(jù)時間過濾進行查詢的操作方法

    這篇文章主要介紹了mongodb中簡單的根據(jù)時間過濾進行查詢,文末補充介紹了如何根據(jù)日期過濾/查找MongoDB中的記錄,結(jié)合實例給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 老生常談MongoDB數(shù)據(jù)庫基礎(chǔ)操作

    老生常談MongoDB數(shù)據(jù)庫基礎(chǔ)操作

    下面小編就為大家?guī)硪黄仙U凪ongoDB數(shù)據(jù)庫基礎(chǔ)操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

阿拉善左旗| 新乡县| 北流市| 都安| 杭锦旗| 武川县| 吉隆县| 庆元县| 田东县| 色达县| 大足县| 呼伦贝尔市| 永丰县| 重庆市| 西宁市| 城口县| 祁门县| 临泉县| 杭锦旗| 眉山市| 龙海市| 平泉县| 敦煌市| 通城县| 娄烦县| 龙里县| 定南县| 宁晋县| 鹤山市| 彩票| 驻马店市| 白城市| 湄潭县| 岳普湖县| 张家界市| 浙江省| 井冈山市| 林甸县| 潮安县| 都兰县| 湘潭市|