Linux 命令行获取 mongodb 版本

Linux command line get mongodb version

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

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) ?

subprocess.check_call return命令的 return 代码。

使用 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(如果命令未 运行 成功,则会引发异常).

执行 mongo --version 你会得到 mongodb client 版本,而不是数据库引擎版本,但我不确定你到底想要什么。

如果您安装了 Python 驱动程序 PyMongo,您可以获得数据库引擎版本:

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