python - 蒙戈 3.2 : ConnectionFailure not working

标签 python pymongo

当代码无法连接到 MongoD 实例时,我正在绞尽脑汁地试图让 pymongo 出错。似乎无论我做什么,“pymongo.errors.ConnectionFailure”都不起作用。我已经在本地主机和远程 mongoD 实例上尝试过此操作。当我从同一系统使用 mongoclient shell('mongo --host xx.xx.xx.xx')时,我得到正确的“连接被拒绝”。其他异常有效,但“ConnectionFailure”无效。请注意,当我在 mongod 实例主机上运行 tshark 嗅探器时,我在关闭的端口上看到正确的 TCP RST,表示连接被拒绝。 Mongod 没有监听,但是 pymongo ConnectionFailure 无法捕获失败的连接。

Python版本:2.7.10 pymongo 版本:3.2

我可能缺少什么,或者排除故障的步骤?在下面的示例中,mongod 未在本地主机上运行。我还在远程主机上停止它。在这两种情况下,都没有捕获异常错误,并且 pymongo 代码似乎认为它已连接。

代码:

import pymongo
try:
    pymongo.MongoClient('localhost:27017')
except pymongo.errors.ConnectionFailure, e:
    print "Could not connect: %s" % e

最佳答案

def dbConnect():
    try:
        conn = pymongo.MongoClient(<connection URL>)
        try:
            conn.server_info()
            return "Connection Successfull"
        except OperationFailure as e:
            return e
    except Exception as e:
        return e

print (dbConnect())

由于 MongoClient 不会返回有助于连接状态的有值(value)的响应,因此这将工作得很好。

关于python - 蒙戈 3.2 : ConnectionFailure not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243707/

相关文章:

python - scipy 中不完整的 Gamma 函数

python - 如何让 mypy 识别或忽略动态导入的类型?

python - 使用包装器从 python 3 运行 python 2

python - 在heroku上使用带有django的站点地图包

python - 解析 mongoDB 引用的模式

python - 无法在 pymongo 中使用格式显示结果

python - 如何在 Celery worker 中正确连接到 mongodb?

作为包类型的 Python 计数器比较

python - 如何将 PyPI 包上传到 Nexus3

mongodb - 如何对数组字段中的子文档进行排序?