how to connect compose mongodb with golang

huangapple go评论85阅读模式
英文:

how to connect compose mongodb with golang

问题

我尝试在Bluemix中使用Golang程序连接Compose MongoDB,但是我得到了不支持的连接URL选项ssl。这里我给出了从ComposeDB控制台获取的MongoDB连接字符串。如何连接到远程主机,需要连接的语法?

session, err := mgo.Dial("mongodb://****:****@aws-us-east-1-portal.26.dblayer.com:20258/admin?ssl=true")
if err != nil {
    panic(err)
}
defer session.Close()

// 可选的。将会话切换到单调行为。
session.SetMode(mgo.Monotonic, true)

c := session.DB("test").C("people")
err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
    &Person{"Cla", "+55 53 8402 8510"})
if err != nil {
    log.Fatal(err)
}

错误信息:

panic: unsupported connection URL option: ssl=true

goroutine 1 [running]:
panic(0x2130a0, 0xc82000a840)
    /usr/local/go/src/runtime/panic.go:481 +0x3e6
main.main()
    /Users/vit/gocode/src/mongmix/mmix.go:19 +0x9b
exit status 2
英文:

I try to connect compose mongodb in bluemix with golang program but i get unsupported connection url option ssl. Here I give mongodb connection string got from composedb console. How to connect with remote host need syntax for connect?

session, err := mgo.Dial("mongodb://****:****@aws-us-east-1-portal.26.dblayer.com:20258/admin?ssl=true")
	if err != nil {
		panic(err)
	}
	defer session.Close()

	// Optional. Switch the session to a monotonic behavior.
	session.SetMode(mgo.Monotonic, true)

	c := session.DB("test").C("people")
	err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
		&Person{"Cla", "+55 53 8402 8510"})
	if err != nil {
		log.Fatal(err)
	}

The error:

panic: unsupported connection URL option: ssl=true

goroutine 1 [running]:
panic(0x2130a0, 0xc82000a840)
    /usr/local/go/src/runtime/panic.go:481 +0x3e6
main.main()
    /Users/vit/gocode/src/mongmix/mmix.go:19 +0x9b
exit status 2

答案1

得分: 1

package main
// 导入mongo gopkg
import (
	"fmt"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)
// 添加结构体
type Person struct {
	Name  string
	Phone string
}
// 主函数
func main() {
	fmt.Println("Hello world")
	// 数据库连接
	session, err := mgo.Dial("localhost:9494")
	if err != nil {
		panic(err)
	}
	defer session.Close()

	// 可选的,将会话切换为单调行为
	session.SetMode(mgo.Monotonic, true)
	// 数据库名称
	c := session.DB("sudheer").C("people")

	err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
		&Person{"Cla", "+55 53 8402 8510"})
	if err != nil {
		log.Fatal(err)
	}

	result := Person{}
	err = c.Find(bson.M{"name": "Ale"}).One(&result)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Phone:", result.Phone)
}

这是一个Go语言的代码片段,它使用了gopkg.in/mgo.v2包来连接MongoDB数据库,并进行一些操作。代码中定义了一个Person结构体,包含姓名和电话字段。在main函数中,首先建立数据库连接,然后插入两个Person对象到名为sudheer的数据库的people集合中。接着通过姓名查询并打印出电话号码。

请注意,这段代码中的数据库连接地址是localhost:9494,你需要根据实际情况修改为正确的地址。另外,你还需要确保已经安装了gopkg.in/mgo.v2包。

英文:

> install "go get gopkg.in/mgo.v2"

package main
///////////////import mongo gopkg//////////////
import (
"fmt"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
//////////// add struct//////////////////////////
type Person struct {
Name string
Phone string
}
/////  main function///////////
func main(){
fmt.Println("Hello world");
//////db connection ////////////
session, err := mgo.Dial("localhost:9494")
if err != nil {
		panic(err)
}
defer session.Close()

// Optional. Switch the session to a monotonic behavior.
session.SetMode(mgo.Monotonic, true)
///////////////db name/////////////
c := session.DB("sudheer").C("people")

err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
		   &Person{"Cla", "+55 53 8402 8510"})
if err != nil {
		log.Fatal(err)
}


result := Person{}
err = c.Find(bson.M{"name": "Ale"}).One(&result)
if err != nil {
		log.Fatal(err)
 }

fmt.Println("Phone:", result.Phone)
 }

答案2

得分: 0

IBM Bluemix Compose for Mongodb有一份在线文档,可以在这里找到:https://console.bluemix.net/docs/services/ComposeForMongoDB/index.html#getting-started-with-compose-for-mongodb

第2步讲述了如何连接到您的Compose MongoDB。第2步提供了一个Node.js示例代码。您需要检查在Golang中连接到MongoDB的连接字符串,即Golang中的语法。

我找到了一篇文章,解释了如何从Golang连接到IBM Compose MongoDB:https://www.compose.com/articles/connect-to-mongo-3-2-on-compose-from-golang/

希望这对您有所帮助。

英文:

IBM Bluemix Compose for Mongodb has a documentation available online here: https://console.bluemix.net/docs/services/ComposeForMongoDB/index.html#getting-started-with-compose-for-mongodb

Step 2 talks about connecting to your compose mongo db. There is a nodejs sample code provided in step 2. You will have to check connection string to mongodb in golang i.e. the syntax in golang.

I found out this article which explains connecting to IBM Compose mongodb from goland: https://www.compose.com/articles/connect-to-mongo-3-2-on-compose-from-golang/

hope this helps.

huangapple
  • 本文由 发表于 2017年6月15日 18:24:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/44565052.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定