python - PyMongo - 从另一台服务器克隆集合

标签 python mongodb pymongo

我正在尝试使用 Python 将远程服务器上的一个集合克隆到我的本地主机(因为我必须在以后使用 Python 使用此函数自动执行多个任务)。从我读过的内容来看,使用 db.command 是解决这个问题的最佳方法,但我似乎无法让它工作,甚至无法找到我真正做错了什么。这是我的代码和错误,任何感谢您的帮助。

client = MongoClient()
db = clientProd.tools
colc = db.newDump

db.command({"cloneCollection": "databaseName.dump", "from": "example.com:6001"})

错误:

Traceback (most recent call last):
  File "/Users/dustin/Git/redbull_dev/test.py", line 14, in <module>
    dbProd.command({"cloneCollection": "databaseName.dump", "from": "example.com:6001"})
  File "/Library/Python/2.7/site-packages/pymongo-2.6.3-py2.7-macosx-10.8-intel.egg/pymongo/database.py", line 396, in command
  File "/Library/Python/2.7/site-packages/pymongo-2.6.3-py2.7-macosx-10.8-intel.egg/pymongo/helpers.py", line 147, in _check_command_response
pymongo.errors.OperationFailure: command {'from': 'example.com:6001', 'cloneCollection': 'databaseName.dump'} failed: no such cmd: from
[Finished in 5.2s with exit code 1]

最佳答案

显然你看过 mongo 的文档,你应该看看 pymongo 的文档 http://api.mongodb.org/python/current/api/pymongo/database.html

据此,正确的命令应该是:

db.command("cloneCollection", collection="databaseName.dump", from="example.com:6001")

编辑

因为 from 是一个 python 关键字,我们可能需要创建一个字典并解压它:

db.command("cloneCollection", **{'collection': "databaseName.dump", 'from': "example.com:6001"})

关于python - PyMongo - 从另一台服务器克隆集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569786/

相关文章:

python - 在python中实现defaultdict类型集合的二叉搜索树

python - 使用 Pymongo 插入文档 - InvalidDocument : Cannot encode object

python - 如何获取集合中嵌套项的值?

python - 在 pymongo 中使用查找

python - 有没有办法知道 QGridLayout 中元素的 X 和 Y 坐标?

python - 属性错误: type object 'projectile' has no attribute 'dir'

Python 生成器对象 : __sizeof__()

mongodb - mongodb的基于Web的UI

MongoDB 的 mongosniff 不会启动?

带有倒排索引的 Ruby & Mongodb 带来了一些有趣的结果