pymongo を使用して、リモートの mongo インスタンスからコレクションを複製しようとしています。ドキュメントcloneCollection
から、コレクションの複製には次のコマンドが必要です。
{ cloneCollection: "<collection>", from: "<hostname>", query: { <query> } }
このコマンドを pymongo で実行するには、コマンドの追加パラメーターを次のように kwargs として指定する必要があります。
db.command("cloneCollection","db_name.collection_name", from = "localhost:27017")
しかし、from
は python の予約済みキーワードであるため、キーワードとして使用することはできません。別の方法は、次のようにコマンドを python dict として渡すことです。
db.command({"cloneCollection":"db_name.collection_name", "from":"localhost:27017"})
ただし、この場合、順序は保持されず、このエラーが発生します
pymongo.errors.OperationFailure: command {'from': 'localhost:27017', 'cloneCollection': 'db_name.collection_name'} failed: no such cmd: from