如何将一个mongo数据库中的记录插入另一个mongo数据库?

b7k*_*ich 16 mongodb

据我所知,所有命令都在mongodb中的同一个数据库上运行.我想做这样的事情:

db.mySourceCollection.find().forEach(function(x){db.theDestinationCollection.save(x)});

这里mySourceCollectionliveDatabasetheDestinationCollectiontestDatabase.

Cam*_*ron 15

使用use:-)

> var documents = db.mySourceCollection.find()
> use testDatabase
switched to db testDatabase
> documents.forEach(function(x){ db.theDestinationCollection.insert(x) })
Run Code Online (Sandbox Code Playgroud)

db用于指代当前连接的数据库,但是您可以使用use命令动态切换数据库,如上所示.

查看helpshell中的命令 - 它提到了这个命令等等!


小智 13

use dbname在脚本模式下不起作用(即使用javascript编写shell脚本时),因此您应该使用该db.getSiblingDB()方法重新分配'db'变量,例如:

db = db.getSiblingDB("otherdb")
Run Code Online (Sandbox Code Playgroud)

更多信息:http://www.mongodb.org/display/DOCS/Scripting+the+shell