使用golang怎么連接MongoDB?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、虛擬空間、營銷軟件、網(wǎng)站建設、薩迦網(wǎng)站維護、網(wǎng)站推廣。
Mogondb 的應用場景:
比如一篇CSDN博客,博客內(nèi)容,博客作者,發(fā)布時間,評論,閱讀量等信息可以將這些信息存儲到一個類似JSON數(shù)據(jù)中。如果用MySQL需要將不同的信息分別存儲于不同的表中,使用的時候,查詢多表或者使用JOIN查詢數(shù)據(jù),導致查詢過慢。而使用MongoDB,將數(shù)據(jù)存儲在一起,需要數(shù)據(jù)時,一次就能查詢到數(shù)據(jù)。更新數(shù)據(jù)或者添加數(shù)據(jù)可以在原有的數(shù)據(jù)集上直接更新或者添加,很方便。
MongoDB易于管理,更新數(shù)據(jù),可以不用像傳統(tǒng)的關系型數(shù)據(jù)使用JOIN來進行查詢,提高性能。
Mogodb擴展起來很容易,可以在多臺服務器進行部署。而且對于大數(shù)據(jù),對于csdn博客的系統(tǒng)來講,每一天,每一個月,每一年都有大量的博客被寫出來,數(shù)據(jù)量的增長每年都是很大的,mongoDB可以在不停機的情況下進行彈性擴展,
意思是增加上幾臺存儲的服務器,形成分布式存儲。
MongoDB很適合于這種需求場景的,不知道csdn怎么實現(xiàn)的 ?
MongoDB 還能高效存儲二進制大對象,比如照片,音樂,視頻的存儲,龐大的數(shù)據(jù)還能加索引和實時聚合
mongodb將數(shù)據(jù)存儲在靈活的類似json的文檔中,字段結(jié)構(gòu)可能因文檔而異,數(shù)據(jù)結(jié)構(gòu)可隨時改變
Json模型可以映射到應用程序代碼中的對象,這樣就很方便的進行使用,有orm的感覺。
在golang中就可以直接與結(jié)構(gòu)體關聯(lián)起來。
類似json的文檔數(shù)據(jù)結(jié)構(gòu)叫做BSON,比json最突出的好處是BSON可遍歷。
MongoDB支持二維空間索引,使用空間索引,mongoDB支持一種特殊查詢,如某地圖網(wǎng)站上可以查找離你最近的咖啡廳,銀行等信息。這個使用mongoDB的空間索引結(jié)合特殊的查詢方法很容易實現(xiàn)。
滴滴、膜拜、OFO等基于位置進行查詢的場景都可以使用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) }
運行結(jié)果:
[local mytest]
其他url的拼接規(guī)則:
mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]] mongodb:// 這是固定的格式,必須要指定。
username:password@ 可選項,如果設置,在連接數(shù)據(jù)庫服務器之后,驅(qū)動都會嘗試登陸這個數(shù)據(jù)庫
host1 必須的指定至少一個host, host1 是這個URI唯一要填寫的。它指定了要連接服務器的地址。如果要連接復制集,請指定多個主機地址。
portX 可選的指定端口,如果不填,默認為27017
/database 如果指定username:password@,連接并驗證登陸指定數(shù)據(jù)庫。若不指定,默認打開 test 數(shù)據(jù)庫。
?options 是連接選項。如果不使用/database,則前面需要加上/。所有連接選項都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開
參考菜鳥教程或者官方文檔都可以:
http://edu.jb51.net/mongodb/mongodb-connections.html
https://docs.mongodb.com/manual/reference/connection-string/index.html
附加一:
windows 工具 連接mongodb的方式,如果用代碼連接mongodb,發(fā)生錯誤,可以用工具檢查服務是否能正常被連接。
(一).安裝windows mongodb,參考網(wǎng)址:https://www.jb51.net/article/85605.htm
(二).使用命令行的進入mongodb 安裝目錄中bin目錄中,執(zhí)行
C:\Program Files\MongoDB\Server\3.6\bin>mongo 123.207.215.200:27017
需要注意的是 此時的url 沒有”mongodb://”
linux的方式類似:
root@VM-192-98-ubuntu:/usr/local/mongodb/bin# ./mongo 127.0.0.1
看完上述內(nèi)容,你們掌握使用golang怎么連接mongoDB的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
名稱欄目:使用golang怎么連接mongoDB
瀏覽地址:http://www.rwnh.cn/article0/gpocoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、品牌網(wǎng)站建設、品牌網(wǎng)站設計、定制開發(fā)、軟件開發(fā)、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)