Переместить данные MongoDB с промежуточного сервера на рабочий - PullRequest
13 голосов
/ 13 января 2011

У меня есть 500 000 документов в коллекции на промежуточном сервере, мне нужно переместить эти документы на рабочий сервер.

Каков наилучший способ переместить эти данные, могу ли я позволить mongodb реплицировать их из промежуточного этапа в производство, переместить файлы данных или выполнить экспорт и повторный импорт?

Ответы [ 5 ]

13 голосов
/ 14 января 2011
  • Чтобы сбросить коллекцию, выполните

    mongodump -d dbname -c collectionname

    На компьютере с Windows это создаст папку дампа в папке Mongo 'data' с файлами bson

  • Для восстановления на удаленном хосте

    mongorestore -h имя-хоста -d имя_базы -c имя-коллекции-дампа \ имя_базы \ имя-коллекции.bson

9 голосов
/ 13 января 2011

Посмотрите на инструменты mongodump и mongorestore.Если вам нужны только некоторые документы в коллекции, вы можете использовать параметр --query.

3 голосов
/ 22 января 2011

вы также можете запустить команду db.copyDatabase из консоли или в вашем приложении.

http://docs.mongodb.org/manual/tutorial/copy-databases-between-instances/

0 голосов
/ 05 ноября 2013

Это просто.

На конечном сервере> Оболочка Монго> Выполнить

db.copyDatabase( source_db_name, destination_db_name, source_hostname, username, password)
0 голосов
/ 13 января 2011

Файлы данных не для каждой коллекции, так что если вы хотите скопировать коллекцию, а не полную базу данных, это не так.Если это на БД, вы можете просто скопировать файлы базы данных.Я не уверен, что 32-битные против 64-битных ... но я думаю, что вы 64-битные, если вы запускаете MongoDB.

Теперь, если коллекция существует на обоих и нужно слить, будьте превосходны, чтобы сохранить _id уникальным,Монгоимпорт / Монгоэкспорт - ваш друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...