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

golang 連接mongoDB的方法示例

 更新時(shí)間:2018年11月11日 09:02:55   作者:中國流浪貓  
這篇文章主要介紹了golang 連接mongoDB的方法示例,詳細(xì)的介紹了golang的基礎(chǔ)知識和連接mongoDB的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Mogondb 不支持事務(wù)。所有有事務(wù)要求的需求慎用,比如銀行的轉(zhuǎn)賬操作慎用,轉(zhuǎn)1個(gè)億美金,因?yàn)榫W(wǎng)絡(luò),電力的故障導(dǎo)致交易沒有完成,不能回滾,交易無法撤回。所有慎用??!

Mogondb 的應(yīng)用場景:

比如一篇CSDN博客,博客內(nèi)容,博客作者,發(fā)布時(shí)間,評論,閱讀量等信息可以將這些信息存儲到一個(gè)類似JSON數(shù)據(jù)中。如果用mysql需要將不同的信息分別存儲于不同的表中,使用的時(shí)候,查詢多表或者使用JOIN查詢數(shù)據(jù),導(dǎo)致查詢過慢。而使用MongoDB,將數(shù)據(jù)存儲在一起,需要數(shù)據(jù)時(shí),一次就能查詢到數(shù)據(jù)。更新數(shù)據(jù)或者添加數(shù)據(jù)可以在原有的數(shù)據(jù)集上直接更新或者添加,很方便。

MongoDB易于管理,更新數(shù)據(jù),可以不用像傳統(tǒng)的關(guān)系型數(shù)據(jù)使用JOIN來進(jìn)行查詢,提高性能。

Mogodb擴(kuò)展起來很容易,可以在多臺服務(wù)器進(jìn)行部署。而且對于大數(shù)據(jù),對于csdn博客的系統(tǒng)來講,每一天,每一個(gè)月,每一年都有大量的博客被寫出來,數(shù)據(jù)量的增長每年都是很大的,mongoDB可以在不停機(jī)的情況下進(jìn)行彈性擴(kuò)展,

意思是增加上幾臺存儲的服務(wù)器,形成分布式存儲。

MongoDB很適合于這種需求場景的,不知道csdn怎么實(shí)現(xiàn)的 ?

MongoDB 還能高效存儲二進(jìn)制大對象,比如照片,音樂,視頻的存儲,龐大的數(shù)據(jù)還能加索引和實(shí)時(shí)聚合

mongodb將數(shù)據(jù)存儲在靈活的類似json的文檔中,字段結(jié)構(gòu)可能因文檔而異,數(shù)據(jù)結(jié)構(gòu)可隨時(shí)改變

Json模型可以映射到應(yīng)用程序代碼中的對象,這樣就很方便的進(jìn)行使用,有orm的感覺。

在golang中就可以直接與結(jié)構(gòu)體關(guān)聯(lián)起來。

類似json的文檔數(shù)據(jù)結(jié)構(gòu)叫做BSON,比json最突出的好處是BSON可遍歷。

MongoDB支持二維空間索引,使用空間索引,mongoDB支持一種特殊查詢,如某地圖網(wǎng)站上可以查找離你最近的咖啡廳,銀行等信息。這個(gè)使用mongoDB的空間索引結(jié)合特殊的查詢方法很容易實(shí)現(xiàn)。

滴滴、膜拜、OFO等基于位置進(jìn)行查詢的場景都可以使用MongoDB的位置索引。

golang 連接mongodb

golang 沒有官方mongodb驅(qū)動,但是有社區(qū)的驅(qū)動:http://labix.org/mgo

第一步:連接mongodb

package main

import (
  "gopkg.in/mgo.v2"
  "fmt"
)
func main() {
  session, err := mgo.Dial("mongodb://123.207.215.200:27017")
  defer session.Close()
  if err !=nil {
    fmt.Println(err)
    return
  }
  names,err:=session.DatabaseNames();
  if err !=nil {
    fmt.Println("未查詢到數(shù)據(jù)庫名字:",err)
  }
  fmt.Println(names)
}

運(yùn)行結(jié)果:

[local mytest]

其他url的拼接規(guī)則:

mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]] 
mongodb:// 這是固定的格式,必須要指定。

username:password@ 可選項(xiàng),如果設(shè)置,在連接數(shù)據(jù)庫服務(wù)器之后,驅(qū)動都會嘗試登陸這個(gè)數(shù)據(jù)庫
host1 必須的指定至少一個(gè)host, host1 是這個(gè)URI唯一要填寫的。它指定了要連接服務(wù)器的地址。如果要連接復(fù)制集,請指定多個(gè)主機(jī)地址。

portX 可選的指定端口,如果不填,默認(rèn)為27017

/database 如果指定username:password@,連接并驗(yàn)證登陸指定數(shù)據(jù)庫。若不指定,默認(rèn)打開 test 數(shù)據(jù)庫。
?options 是連接選項(xiàng)。如果不使用/database,則前面需要加上/。所有連接選項(xiàng)都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開

參考菜鳥教程或者官方文檔都可以:
http://edu.jb51.net/mongodb/mongodb-connections.html
https://docs.mongodb.com/manual/reference/connection-string/index.html

附加一:

windows 工具 連接mongodb的方式,如果用代碼連接mongodb,發(fā)生錯(cuò)誤,可以用工具檢查服務(wù)是否能正常被連接。
(一).安裝windows mongodb,參考網(wǎng)址:http://www.fzitv.net/article/85605.htm

(二).使用命令行的進(jìn)入mongodb 安裝目錄中bin目錄中,執(zhí)行

C:\Program Files\MongoDB\Server\3.6\bin>mongo 123.207.215.200:27017

需要注意的是 此時(shí)的url 沒有”mongodb://”

linux的方式類似:

root@VM-192-98-ubuntu:/usr/local/mongodb/bin# ./mongo 127.0.0.1

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go實(shí)現(xiàn)比較時(shí)間大小

    Go實(shí)現(xiàn)比較時(shí)間大小

    這篇文章主要介紹了Go實(shí)現(xiàn)比較時(shí)間大小的方法和示例,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-04-04
  • Golang channle管道的基本使用及快速入門

    Golang channle管道的基本使用及快速入門

    管道是Go語言中實(shí)現(xiàn)并發(fā)的一種方式,它可以在多個(gè)goroutine之間進(jìn)行通信和數(shù)據(jù)交換,本文主要介紹了Golang channle管道的基本使用及快速入門,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Go標(biāo)準(zhǔn)庫-ServeMux的使用與模式匹配深入探究

    Go標(biāo)準(zhǔn)庫-ServeMux的使用與模式匹配深入探究

    這篇文章主要為大家介紹了Go標(biāo)準(zhǔn)庫-ServeMux的使用與模式匹配深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享

    Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享

    這篇文章主要介紹了Go語言實(shí)現(xiàn)機(jī)器大小端判斷代碼分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • 使用Go語言開發(fā)一個(gè)命令行文件管理工具

    使用Go語言開發(fā)一個(gè)命令行文件管理工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Go語言開發(fā)一款命令行文件管理工具,支持批量重命名,刪除,創(chuàng)建,移動文件,需要的小伙伴可以了解下
    2025-02-02
  • Go語言defer與return執(zhí)行的先后順序詳解

    Go語言defer與return執(zhí)行的先后順序詳解

    這篇文章主要為大家介紹了Go語言defer與return執(zhí)行的先后順序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • golang并發(fā)編程使用Select語句的實(shí)現(xiàn)

    golang并發(fā)編程使用Select語句的實(shí)現(xiàn)

    Go語言中的select語句是并發(fā)編程中的重要工具,允許Goroutine等待多個(gè)通道操作,它阻塞直至任一case可執(zhí)行,可用于接收數(shù)據(jù)、實(shí)現(xiàn)超時(shí)機(jī)制和非阻塞通道操作,感興趣的可以了解一下
    2024-10-10
  • Go Gin中間件的具體使用

    Go Gin中間件的具體使用

    中間件是Gin框架中的一個(gè)重要概念,它可以用來處理HTTP請求和響應(yīng),或者在處理請求之前和之后執(zhí)行一些操作,本文主要介紹了Go Gin中間件的具體使用,感興趣的可以了解一下
    2023-11-11
  • GoLang中的加密方法小結(jié)

    GoLang中的加密方法小結(jié)

    這篇文章主要介紹了GoLang中的加密方法。具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Golang中Bit數(shù)組的實(shí)現(xiàn)方式

    Golang中Bit數(shù)組的實(shí)現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

灵璧县| 静安区| 轮台县| 文山县| 兴仁县| 惠来县| 兴城市| 胶州市| 万全县| 浠水县| 蓝田县| 镇平县| 家居| 丰县| 襄城县| 崇阳县| 沾化县| 乐山市| 巍山| 娱乐| 宜阳县| 镇坪县| 酒泉市| 合作市| 谢通门县| 西青区| 白水县| 白玉县| 柯坪县| 丹寨县| 从化市| 鸡泽县| 新田县| 博乐市| 太原市| 宜春市| 易门县| 厦门市| 兴业县| 专栏| 卓资县|