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

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

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

前言

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

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

使用教程如下:

導(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ù)庫(kù)和集合

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

刪除這個(gè)集合

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)

查詢(xún)單條數(shù)據(jù)

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

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

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

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

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

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

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

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

查詢(xún)集合里面有多少數(shù)據(jù)(查詢(xún)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)

完整演示代碼 點(diǎn)擊這里

查看mongo BSON詳細(xì)用法 點(diǎn)擊這里

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    MongoDB各種查詢(xún)操作詳解

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

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

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

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

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

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

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

    MongoDB中的bson介紹和使用實(shí)例

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

    MongoDB安全配置詳解

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

    mongodb中根據(jù)時(shí)間過(guò)濾進(jìn)行查詢(xún)的操作方法

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

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

    下面小編就為大家?guī)?lái)一篇老生常談MongoDB數(shù)據(jù)庫(kù)基礎(chǔ)操作。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07

最新評(píng)論

平舆县| 陕西省| 阜平县| 西峡县| 仲巴县| 安新县| 廊坊市| 正定县| 宁蒗| 磐石市| 庆安县| 通州市| 和林格尔县| 蓝田县| 普安县| 上蔡县| 永春县| 横峰县| 沛县| 营口市| 申扎县| 新津县| 湖北省| 辽中县| 田林县| 土默特左旗| 策勒县| 蒙城县| 赤城县| 海丰县| 武安市| 鹤壁市| 吴忠市| 定南县| 竹北市| 邵阳县| 迁西县| 罗田县| 黄龙县| 浦城县| 阜城县|