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

时间:2011-01-14 03:45:01

标签: mongodb

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

  

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

其中mySourceCollection位于liveDatabasetheDestinationCollection位于testDatabase

2 个答案:

答案 0 :(得分:15)

使用use: - )

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

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

查看shell中的help命令 - 它提到了这个命令以及更多内容!

答案 1 :(得分:13)

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

db = db.getSiblingDB("otherdb")

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