英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论