Mongodb unix 套接字与官方 mongo-go-driver 的连接?

标签 mongodb sockets unix go

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

它是否得到官方实现和支持?

“mongodb:///tmp/mongodb-27017.sock”uri 不起作用。

最佳答案

Is it implemented and supported officially?

使用官方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 套接字直接连接,否则我建议改用上述连接字符串格式之一。

关于Mongodb unix 套接字与官方 mongo-go-driver 的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58052633/

相关文章:

c - 在某些情况下,我应该在哪里使用类型 char ** 作为输入参数?

javascript - 在我的服务器上运行 Sails.js 应用程序几分钟后无法访问 MongoDB

c# - 如何处理像 Mongo 这样的文档数据库中单独存储的对象的引用?

sockets - 如何在多宿主服务器的非默认接口(interface)上接收多播数据

linux - Bash管道消费顺序

objective-c - 将文件复制到应用程序可能无法写入的目录

java - MongoDB:游标在 next() 完成之前已关闭

javascript - Module.exports 函数不返回任何 Node.js

sockets - netcat 如何从两个不同的终端监听同一主机上的同一端口?

java - 使用什么来识别连接到服务器的客户端? Java、安卓、套接字