无法从MongoDB python获取集合名称

时间:2019-10-28 08:54:34

标签: python mongodb

我有mongodb在天蓝色门户网站上运行。我可以使用nosql booster连接到它。我创建了一个数据库TestDb,并向其中添加了3个集合。我正在尝试使用python连接到它,如下所示:

mongo_url = 'mongodb://' + <username> + ':' + <password> + '@' + <url> + ':' + port + '/' + admin
client = MongoClient(mongo_url)
db = client.get_database('TestDb')
print(db)
print(db.list_collection_names()) # Error at this line

以下是db的输出:

Database(MongoClient(host=['<name>.documents.azure.com:10255'], document_class=dict, tz_aware=False, connect=True), 'TestDb')

但是在db.list_collection_names()处显示错误<name>.documents.azure.com:10255: timed out

我已经重新检查了所有内容,对我来说一切都很好。但是不知道为什么不能使用python来完成上述操作。请帮忙。谢谢

2 个答案:

答案 0 :(得分:1)

值得一提的是您正在使用Cosmos DB。

尽管它在有线协议级别上与MongoDB兼容,但它有自己的详细信息。

尝试从Azure Portal遵循Python的快速入门摘要。它应该具有最准确的连接设置。

我最好的猜测是它需要ssl enabled oclientside

mongo_url = 'mongodb://' + <username> + ':' + <password> + '@' + <url> + ':' + port + '/' + admin + '?ssl=true'

答案 1 :(得分:0)

我也使用了一个测试数据库,但没有任何效果。这个开发数据库有一些虚拟配置,所以解决方案是在我的网址中添加一个 tlsAllowInvalidCertificates

url = f"mongodb://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DB_NAME}?authSource=admin&ssl=true&tlsAllowInvalidCertificates=true"