使用python转储和恢复mongo db

使用python转储和恢复mongo db,python,linux,mongodb,shell,Python,Linux,Mongodb,Shell,您好,我有一个简单的脚本,它使用shell命令从远程mongo服务器转储mongo db,然后运行shell命令将该db恢复到另一台服务器上的dev db 脚本位于/home/ubuntu/mongo中,转储位于/home/ubuntu/mongo/dump中 这是我的密码: !/usr/bin/python 这是我的错误: ERROR: root directory must be a dump of a single database when specifying a db

您好,我有一个简单的脚本,它使用shell命令从远程mongo服务器转储mongo db,然后运行shell命令将该db恢复到另一台服务器上的dev db

脚本位于/home/ubuntu/mongo中,转储位于/home/ubuntu/mongo/dump中

这是我的密码:

!/usr/bin/python 这是我的错误:

ERROR: root directory must be a dump of a single database
       when specifying a db name with --db
usage: mongorestore [options] [directory or filename to restore from]
options:
  --help                  produce help message
  -v [ --verbose ]        be more verbose (include multiple times for more
                          verbosity e.g. -vvvvv)
  --version               print the program's version and exit
  -h [ --host ] arg       mongo host to connect to ( <set name>/s1,s2 for sets)
  --port arg              server port. Can also use --host hostname:port
  --ipv6                  enable IPv6 support (disabled by default)
  -u [ --username ] arg   username
  -p [ --password ] arg   password
  --dbpath arg            directly access mongod database files in the given
                          path, instead of connecting to a mongod  server -
                          needs to lock the data directory, so cannot be used
                          if a mongod is currently accessing the same path
  --directoryperdb        if dbpath specified, each db is in a separate
                          directory
  --journal               enable journaling
  -d [ --db ] arg         database to use
  -c [ --collection ] arg collection to use (some commands)
  --objcheck              validate object before inserting
  --filter arg            filter to apply before inserting
  --drop                  drop each collection before import
  --oplogReplay           replay oplog for point-in-time restore
  --keepIndexVersion      don't upgrade indexes to newest version
错误:根目录必须是单个数据库的转储
使用--db指定数据库名称时
用法:mongorestore[选项][要从中还原的目录或文件名]
选项:
--帮助生成帮助消息
-v[--verbose]更详细(包括多次以获取更多信息)
冗长(例如-VVV)
--版本打印程序的版本并退出
-要连接到的h[--host]arg mongo主机(/s1,s2表示集合)
--端口arg服务器端口。还可以使用--host hostname:port
--ipv6启用ipv6支持(默认情况下禁用)
-u[--用户名]参数用户名
-p[--密码]参数密码
--dbpath arg直接访问给定数据库中的mongod数据库文件
路径,而不是连接到mongod服务器-
需要锁定数据目录,因此无法使用
如果mongod当前正在访问同一路径
--directoryperdb如果指定了dbpath,则每个数据库都位于单独的数据库中
目录
--日志启用日志记录
-要使用的d[--db]arg数据库
-c[--collection]要使用的参数集合(某些命令)
--objcheck在插入前验证对象
--筛选器arg插入前要应用的筛选器
--导入前删除每个集合
--oplog replay replay用于时间点恢复的oplog
--keepIndexVersion不将索引升级到最新版本
找到了答案:

"mongorestore --host  -db chronotrack  --drop dump/chronotrack"

顺便说一句,我删除主机名的原因很明显。不需要澄清主机名。我们都明白!:)为了未来用户的利益,请解释答案。我假设在最初的post op中,在“-drop dump/”部分中遗漏了转储的名称(即“chronotrack”),并尝试只指定转储目标,而不是转储文件本身。
"mongorestore --host  -db chronotrack  --drop dump/chronotrack"