Probabilmente il modo più efficiente per copiare una raccolta da un DB a un altro è usare mongodump /mongorestore dalla tua shell:
sh$ echo 'db.createCollection("some_collection")' | mongo my_dst_db
sh$ mongodump --db my_src_db --collection some_collection --out=- | \
mongorestore --db my_dst_db --collection some_collection --dir=-
Il primo comando utilizzerà mongo
per creare la raccolta di destinazione. Questo è necessario dato il tuo caso d'uso poiché, da quello che ho appena testato, mongorestore
non creerà una raccolta vuota. Dopodiché, questo è solo un processo di dump/ripristino.
Tieni presente che mongodump
accetterà un --query
parametro nel caso sia necessario un parziale copia della tua collezione.