我有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来完成上述操作。请帮忙。谢谢
答案 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"