Linux命令行获取mongodb版本

时间:2015-02-16 13:29:00

标签: python mongodb

我可以在命令行中获取版本,但是如何将其存储在变量中:

In [28]: if subprocess.call('mongo --version', shell = True) == '':
   ....:     print 'Not installed'
   ....: else:
             print 'Already installed'
   ....:     print subprocess.call('mongo --version', shell = True)
   ....:     
MongoDB shell version: 2.6.1
MongoDB shell version: 2.6.1
0

是否可以只检索版本值,将其存储在变量中?

v = subprocess.call('mongo --version', shell = True)

2 个答案:

答案 0 :(得分:3)

subprocess.check_call返回命令的返回码。

使用subprocess.check_output将命令输出重新命名为字节串:

try:
    output = subprocess.check_output(['mongo', '--version'])
    version = output.split()[-1]  # get the last word: version
except (OSError, subprocess. CalledProcessError):
    version = None

您需要捕获异常OSError(如果找不到命令,子进程将引发异常),CalledProcessError(如果命令未成功运行,则会引发异常)。

答案 1 :(得分:0)

执行mongo --version您将获得mongodb 客户端版本,而不是数据库引擎版本,但我不确定您真正想要的是什么。

如果安装了Python驱动程序PyMongo,则可以使用以下命令获取数据库引擎版本:

from pymongo import MongoClient
client = MongoClient(host=host, port=port)
print client.server_info()['version']