Как вставить запись из одной базы данных mongo в другую?
Насколько я вижу, все команды работают в одной базе данных в mongodb. Я хочу сделать что-то вроде этого:
db.mySourceCollection.find(). forEach (function (x) {db.theDestinationCollection.save(x)});
где mySourceCollection
находится на liveDatabase
и theDestinationCollection
находится на testDatabase
.
Ответы
Ответ 1
Используйте use
: -)
> var documents = db.mySourceCollection.find()
> use testDatabase
switched to db testDatabase
> documents.forEach(function(x){ db.theDestinationCollection.insert(x) })
db
используется для ссылки на текущую подключенную базу данных, однако вы можете переключать базы данных "на лету" с помощью команды use
, как показано выше.
Проверьте команду help
в оболочке - она упоминает эту команду и многое другое!
Ответ 2
use dbname
не работает в сценарийном режиме (т.е. при написании сценария с javascript), поэтому вместо этого следует использовать метод db.getSiblingDB()
, чтобы переназначить переменную 'db', например:
db = db.getSiblingDB("otherdb")
Дополнительная информация здесь: http://www.mongodb.org/display/DOCS/Scripting+the+shell