MongoDB unix套接字与正式的mongo-go-driver连接?

时间:2019-09-22 19:15:59

标签: mongodb sockets unix go

找不到有关官方mongo-go-driver的unix域套接字连接支持的任何信息。

它是否得到正式实施和支持?

“ mongodb:///tmp/mongodb-27017.sock” uri无法正常工作。

1 个答案:

答案 0 :(得分:1)

  

它是否得到正式实施和支持?

使用官方MongoDB Go driver,您可以直接连接到URI套接字。您只需要转义斜线即可。例如使用v1.1 +:

mongoURI := "mongodb://%2Ftmp%2Fmongodb-27017.sock"

client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
    panic(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
if err != nil {
    panic(err)
}

此外,mongo.Client支持两种类型的连接字符串:

请注意,MongoDB在设计上是一个分布式数据库(请参见Replica Set)。套接字是基于文件的通信,旨在在单个计算机中进行访问。除非您的用例和要求特别要求直接通过Unix套接字进行连接,否则我建议改用上述一种连接字符串格式。