mongo copy from one collection to another (on the same db)

also usefull: to export collection to json file

mongoexport --collection collection1_backup --out collection1.json

to import collection from json file

mongoimport --db test --collection collection1 --file collection1.json

to import single collection from backup/dump file one need to convert *.bson file to *.json by using

bsondump collection1_backup.bson > collection1_backup.json

The best way to have done this (considering the name of the collection ends with _backup) is possibly to have used mongorestore: http://docs.mongodb.org/manual/reference/mongorestore/

However in this case it depends. If the collection is unsharded you can use renameCollection ( http://docs.mongodb.org/manual/reference/command/renameCollection/ ) or you can use a more manual method of (in JavaScript code):

db.collection1.drop(); // Drop entire other collection
db.collection1_backup.find().forEach(function(doc){
   db.collection1.insert(doc); // start to replace
});

Those are the most common methods of doing this.


This can be done using simple command:

db.collection1_backup.aggregate([ { $match: {} }, { $out: "collection1" } ])

This command will remove all the documents of collection1 and then make a clone of collection1_backup in collection1.

Generic Command would be

db.<SOURCE_COLLECTION>.aggregate([ { $match: {} }, { $out: "<TARGET_COLLECTION>" } ])

If TARGET_COLLECTION does not exist, the above command will create it.

Tags:

Mongodb