Navigation

db.cloneCollection()

On this page

Definition

db.cloneCollection(from, collection, query)

Copies data directly between MongoDB instances. The db.cloneCollection() method wraps the cloneCollection command and accepts the following arguments:

Parameter Type Description
from string The address of the server to clone from.
collection string

The collection in the MongoDB instance that you want to copy. db.cloneCollection() will only copy the collection with this name from database of the same name as the current database the remote MongoDB instance.

If you want to copy a collection from a different database name you must use the cloneCollection directly.

query document Optional. A standard query document that limits the documents copied as part of the db.cloneCollection() operation. All query selectors available to the find() are available here.

Behavior

mongos

mongos does not support db.cloneCollection().

Namespace

When copying the specified collection, db.cloneCollection() uses the same database name in the from server as the destination database. If the collection does not exist in the source database, db.cloneCollection() fails.

Changed in version 3.0: If the given collection already exists in the destination mongod instance, db.cloneCollection() returns an error.

Authorization

db.cloneCollection() cannot be used if the from server has authorization enabled.

FeatureCompatibilityVersion

You cannot copy data between a mongod instance with featureCompatibilityVersion (FCV) 3.6 and a MongoDB version 3.4 and earlier mongod instance.

For example:

Instance 1 Instance 2  
Version 3.6 mongod with FCV 3.6 Version 3.6 mongod with FCV 3.6 Can copy data.
Version 3.6 mongod with FCV 3.6 Version 3.6 mongod with FCV 3.4 Can copy data.
Version 3.6 mongod with FCV 3.6 Version 3.4 mongod with FCV 3.4 Cannot copy data. Instance 2 must be a MongoDB version 3.6
Version 3.6 mongod with FCV 3.4 Version 3.4 mongod with FCV 3.4 Can copy data.
Version 3.6 mongod with FCV 3.4 Version 3.2 mongod Can copy data.

Operations that copy data include:

Example

use users
db.cloneCollection('mongodb.example.net:27017', 'profiles',
                    { 'active' : true } )

This operation copies the profiles collection from the users database on the server at mongodb.example.net into the users database on the local server. The operation only copies documents that satisfy the query { 'active' : true }.