據我所見,所有命令都在mongodb中的相同數據庫上運行。我想要做這樣的事情:如何將一個記錄從一個mongo數據庫插入另一個?
db.mySourceCollection.find()。forEach(function(x){db.theDestinationCollection.save(x)});
其中mySourceCollection
是liveDatabase
和theDestinationCollection
是testDatabase
。
據我所見,所有命令都在mongodb中的相同數據庫上運行。我想要做這樣的事情:如何將一個記錄從一個mongo數據庫插入另一個?
db.mySourceCollection.find()。forEach(function(x){db.theDestinationCollection.save(x)});
其中mySourceCollection
是liveDatabase
和theDestinationCollection
是testDatabase
。
使用use
:-)
> var documents = db.mySourceCollection.find()
> use testDatabase
switched to db testDatabase
> documents.forEach(function(x){ db.theDestinationCollection.insert(x) })
db
被用來指代當前連接的數據庫,但是你可以使用use
命令飛切換數據庫,正如我上面顯示。
查看shell中的help
命令 - 它提到了這個命令以及更多!
use dbname
不腳本模式工作(即腳本使用JavaScript shell時),所以你應該使用db.getSiblingDB()
方法,而不是重新分配「DB」的變量,例如:這裏
db = db.getSiblingDB("otherdb")
更多信息:http://www.mongodb.org/display/DOCS/Scripting+the+shell
謝謝!我知道使用,但我不會想到堅持變量的狀態。我希望在流體使用的db上有一個use()方法,例如, db.use('sourceDb')。collectionA.do(db.use('destDb')。 – b7kich 2011-01-14 18:55:43