如何使用pymongo客户端获取端口名称和端口号的列表



如何使用pymongo客户端获取主机名和端口号? 我尝试了客户端。主机和客户端。PORT 但其返回默认值 localhost,27017 另外,我尝试了client.host返回的MongoDB客户端对象,如下所示

MongoClient(host=['mgdb-raspoc-npd2-1.xxxxx.com:27066', 'mgdb-raspoc-npd3-1.xxxxx.com:27066', 'mgdb-raspoc-npd1-1.xxxxx.com:27066'], document_class=dict, tz_aware=False, connect=True, serverselectiontimeoutms=6000, replicaset='raspoc', authsource='admin')

我正在寻找主机名和端口号的列表,如下所示

['mgdb-raspoc-npd2-1.xxxxx.com:27066', 'mgdb-raspoc-npd3-1.xxxxx.com:27066', 'mgdb-raspoc-npd1-1.xxxxx.com:27066']

这可以从pymongo.mongo_client.MongoClientprimarysecondariesarbiters性质计算出来。例如

from itertools import chain
//...
seeds = [
(host, port)
for host, port in chain([client.primary], client.secondaries, client.arbiters)
]

Use client.nodes 返回 frozenset (frozenset 的元素是主机名和端口的元组(。

from pymongo import MongoClient
client = MongoClient('mongodb+srv://user:password@cluster0-p0odn.mongodb.net/test')
print(client.nodes) #modify as you need

最新更新