佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > golang 連接mongoDB的方法示例

golang 連接mongoDB的方法示例

熱門標簽:地方門戶網(wǎng)站 呼叫中心市場需求 服務外包 鐵路電話系統(tǒng) Linux服務器 網(wǎng)站排名優(yōu)化 AI電銷 百度競價排名

Mogondb 不支持事務。所有有事務要求的需求慎用,比如銀行的轉賬操作慎用,轉1個億美金,因為網(wǎng)絡,電力的故障導致交易沒有完成,不能回滾,交易無法撤回。所有慎用?。?/p>

Mogondb 的應用場景:

比如一篇CSDN博客,博客內容,博客作者,發(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的文檔中,字段結構可能因文檔而異,數(shù)據(jù)結構可隨時改變

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

在golang中就可以直接與結構體關聯(lián)起來。

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

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

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

golang 連接mongodb

golang 沒有官方mongodb驅動,但是有社區(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)
}

運行結果:

[local mytest]

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

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

username:password@ 可選項,如果設置,在連接數(shù)據(jù)庫服務器之后,驅動都會嘗試登陸這個數(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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Golang Mongodb模糊查詢的使用示例
  • mongodb官方的golang驅動基礎使用教程分享
  • Golang對MongoDB數(shù)據(jù)庫的操作簡單封裝教程
  • golang操作mongodb的方法
  • 詳解Golang使用MongoDB通用操作

標簽:湖南 仙桃 衡水 崇左 湘潭 黃山 蘭州 銅川

巨人網(wǎng)絡通訊聲明:本文標題《golang 連接mongoDB的方法示例》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    江城| 会昌县| 日喀则市| 涞水县| 赤壁市| 南靖县| 沽源县| 新河县| 青神县| 内黄县| 花莲县| 莲花县| 汉中市| 长葛市| 扎鲁特旗| 松潘县| 西乌珠穆沁旗| 慈溪市| 崇仁县| 定安县| 固安县| 旺苍县| 钟山县| 连云港市| 宁化县| 新安县| 平定县| 务川| 申扎县| 邵阳县| 全南县| 纳雍县| 德庆县| 古交市| 施甸县| 徐汇区| 扎赉特旗| 巴塘县| 古浪县| 多伦县| 敦化市|