0

我尝试将新成员添加到 mongodb 中的副本集。有可能用 os.system 来做。但是 subprocess.call() 会怎么样?

到目前为止,我有:

import subprocess

task='''"rs.add('alehandro-VirtualBox:27067')"'''
port=27072
subprocess.call(["/usr/bin/mongo", " --port {0}".format(port), " --eval {0}".format(task)])

输出:

MongoDB shell 版本:2.4.5 连接到:--port 27072 Sun Jul 28 16:34:18.884 JavaScript 执行失败:错误:[--port 27072] 不是 src/mongo/shell/mongo.js 上的有效数据库名称:L40 异常:连接失败

有人可以帮我吗?

4

1 回答 1

1

由于您将参数传递给 subprocess.call 的方式,使用名为--port 27072的参数和 --eval 的值调用 mongo 进程。

如果您将subprocess.call调用更改为以下内容,那么它应该可以工作:

subprocess.call(["/usr/bin/mongo", "--port", str(port), "--eval", task])
于 2013-07-29T10:16:45.140 回答