1. 程式人生 > 資料庫 >golang 連線mongoDB的方法示例

golang 連線mongoDB的方法示例

Mogondb 不支援事務。所有有事務要求的需求慎用,比如銀行的轉賬操作慎用,轉1個億美金,因為網路,電力的故障導致交易沒有完成,不能回滾,交易無法撤回。所有慎用!!

Mogondb 的應用場景:

比如一篇CSDN部落格,部落格內容,部落格作者,釋出時間,評論,閱讀量等資訊可以將這些資訊儲存到一個類似JSON資料中。如果用mysql需要將不同的資訊分別儲存於不同的表中,使用的時候,查詢多表或者使用JOIN查詢資料,導致查詢過慢。而使用MongoDB,將資料儲存在一起,需要資料時,一次就能查詢到資料。更新資料或者新增資料可以在原有的資料集上直接更新或者新增,很方便。

MongoDB易於管理,更新資料,可以不用像傳統的關係型資料使用JOIN來進行查詢,提高效能。

Mogodb擴充套件起來很容易,可以在多臺伺服器進行部署。而且對於大資料,對於csdn部落格的系統來講,每一天,每一個月,每一年都有大量的部落格被寫出來,資料量的增長每年都是很大的,mongoDB可以在不停機的情況下進行彈性擴充套件,

意思是增加上幾臺儲存的伺服器,形成分散式儲存。

MongoDB很適合於這種需求場景的,不知道csdn怎麼實現的 ?

MongoDB 還能高效儲存二進位制大物件,比如照片,音樂,視訊的儲存,龐大的資料還能加索引和實時聚合

mongodb將資料儲存在靈活的類似json的文件中,欄位結構可能因文件而異,資料結構可隨時改變

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

在golang中就可以直接與結構體關聯起來。

類似json的文件資料結構叫做BSON,比json最突出的好處是BSON可遍歷。

MongoDB支援二維空間索引,使用空間索引,mongoDB支援一種特殊查詢,如某地圖網站上可以查詢離你最近的咖啡廳,銀行等資訊。這個使用mongoDB的空間索引結合特殊的查詢方法很容易實現。

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

golang 連線mongodb

golang 沒有官方mongodb驅動,但是有社群的驅動: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("未查詢到資料庫名字:",err)
  }
  fmt.Println(names)
}

執行結果:

[local mytest]

其他url的拼接規則:

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

username:password@ 可選項,如果設定,在連線資料庫伺服器之後,驅動都會嘗試登陸這個資料庫
host1 必須的指定至少一個host,host1 是這個URI唯一要填寫的。它指定了要連線伺服器的地址。如果要連線複製集,請指定多個主機地址。

portX 可選的指定埠,如果不填,預設為27017

/database 如果指定username:password@,連線並驗證登陸指定資料庫。若不指定,預設開啟 test 資料庫。
?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,發生錯誤,可以用工具檢查服務是否能正常被連線。
(一).安裝windows mongodb,參考網址:https://www.jb51.net/article/85605.htm

(二).使用命令列的進入mongodb 安裝目錄中bin目錄中,執行

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

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