Я хочу экспортировать все коллекции в MongoDB командой:
mongoexport -d dbname -o Mongo.json
Результат:
коллекция не указана!
В руководстве сказано, что если вы не укажете коллекцию, все коллекции будут экспортированы.
Однако, почему это не работает?
http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection
Моя версия MongoDB - 2.0.6.
Ответы:
Для ленивых, пользуйтесь
mongodump
, это быстрее:И «восстановить / импортировать» его (из directory_backup / dump /):
Таким образом, вам не нужно иметь дело со всеми коллекциями индивидуально. Просто укажите базу данных.
Обратите внимание, что я бы рекомендовал не использовать
mongodump
/mongorestore
для больших хранилищ данных . Это очень медленно, и как только вы получите 10/20 ГБ данных, восстановление может занять несколько часов.источник
Я написал для этого скрипт bash. Просто запустите его с 2 параметрами (имя базы данных, каталог для хранения файлов).
источник
for file in *.json; do c=${file#*exp_yourdbname_}; c=${c%.json}; mongoimport --db yourdbname --collection "${c}" --file "${file}"; done
Следуйте приведенным ниже инструкциям, чтобы создать mongodump на сервере и импортировать его на другой сервер / локальный компьютер с именем пользователя и паролем.
источник
Для экспорта всех коллекций с помощью mongodump используйте следующую команду
mongodump -d database_name -o directory_to_store_dumps
Для восстановления используйте эту команду
источник
mongodump -d mongo -o path\to\Desktop\blog
и я получаюSyntaxError: missing ; before statement
от CMD. :(Пожалуйста, дайте нам знать, где вы установили свою БД Mongo? (либо в Ubuntu, либо в Windows)
Для Windows:
mongodump - имя базы данных db - путь для сохранения,
например: mongodump --db mydb --out c: \ TEMP \ op.json
Для Ubuntu:
mongodump -d имя базы данных -o имя файла для сохранения,
например: mongodump -d mydb -o output.json
источник
Предыдущие ответы объяснили это хорошо, я добавляю свой ответ, чтобы помочь в случае, если вы имеете дело с удаленной базой данных, защищенной паролем
источник
Если вы хотите подключиться к удаленному серверу mongoDB, например, mongolab.com, вы должны передать учетные данные, например.
источник
Если вы в порядке с форматом bson, вы можете использовать утилиту mongodump с тем же флагом -d. Он выгрузит все коллекции в каталог дампа (по умолчанию его можно изменить с помощью опции -o) в формате bson. Затем вы можете импортировать эти файлы с помощью утилиты mongorestore.
источник
Вы можете использовать,
mongo --eval 'printjson(db.getCollectionNames())'
чтобы получить список коллекций, а затем выполнить моноэкспорт для всех из них. Вот пример в рубинеисточник
out.scan(/\".+?\"/).map { |s| s.gsub('"', '') }
Мне нужна была версия пакетного скрипта Windows. Эта ветка была полезна, поэтому я подумал, что я тоже внесу свой ответ.
У меня были некоторые проблемы с использованием
set /p COLLECTIONS=<__collections.txt
, следовательно, запутанныйfor /f
метод.источник
После многих запутанных примеров я обнаружил, что очень простой подход работает для меня.
Я просто хотел взять дамп базы данных из локальной системы и импортировать его на удаленный экземпляр:
на локальной машине:
затем я скопировал свой дамп на серверную машину:
тогда из родительского каталога дампа просто:
и это импортировало базу данных.
при условии, что служба mongodb работает, конечно.
источник
Если вы хотите, вы можете экспортировать все коллекции в CSV без указания
--fields
(будут экспортированы все поля).С http://drzon.net/export-mongodb-collections-to-csv-without-specifying-fields/ запустите этот скрипт bash
источник
Вы можете сделать это с помощью mongodump команды
Экспортированные файлы будут созданы в папке destination_path \ your_db_name (в этом примере C: \ Users \ HP \ Desktop \ test)
Рекомендации: o7planning
источник
Если вы хотите сбросить все коллекции во всех базах данных (что является обширной интерпретацией намерения исходного спрашивающего), используйте
Все базы данных и коллекции будут созданы в каталоге с именем «dump» в «текущем» месте.
источник
Я понимаю, что это довольно старый вопрос и что mongodump / mongorestore явно верный путь, если вы хотите 100% точный результат, включая индексы.
Тем не менее, мне нужно было быстрое и грязное решение, которое, вероятно, было бы совместимо с предыдущими версиями MongoDB и обратно и обратно, при условии, что ничего особенного не происходит. И для этого я хотел получить ответ на оригинальный вопрос.
Есть и другие приемлемые решения выше, но этот конвейер Unix относительно короткий и приятный:
Это создает
.json
файл с соответствующим именем для каждой коллекции.Обратите внимание, что имя базы данных («mydatabase») появляется дважды. Я предполагаю , что база данных является локальной и не нужно передавать учетные данные , но это легко сделать с помощью как
mongo
иmongoexport
.Обратите внимание, что я использую
grep -v
для отбрасыванияsystem.indexes
, потому что я не хочу, чтобы старая версия MongoDB пыталась интерпретировать системную коллекцию из более новой. Вместо этого я позволяю своему приложению совершать обычныеensureIndex
вызовы для воссоздания индексов.источник
Вы можете создать zip-файл с помощью следующей команды. Он создаст zip-файл базы данных {dbname} при условии. Вы можете позже импортировать следующий zip-файл в вашу базу данных mongo.
источник
Вот что сработало для меня при восстановлении экспортированной базы данных:
mongorestore -d 0 ./0 --drop
где ./contracted экспортированные файлы bson. Обратите внимание, что
--drop
будут перезаписаны существующие данные.источник
Если вы хотите использовать mongoexport и mongoimport для экспорта / импорта каждой коллекции из базы данных, я думаю, что эта утилита может быть полезна для вас. Я использовал подобную утилиту пару раз;
источник
Если вы хотите сделать резервную копию всех dbs на сервере, не беспокоясь о том, что dbs вызывается, используйте следующий сценарий оболочки:
При этом используется утилита mongodump, которая будет создавать резервные копии всех БД, если они не указаны.
Вы можете поместить это в свой cronjob, и он будет работать, только если запущен процесс mongod. Он также создаст каталог резервного копирования, если он не существует.
Каждая резервная копия БД записывается в отдельный каталог, поэтому вы можете восстановить отдельные БД из глобального дампа.
источник
Во-первых, из Start the Mongo DB - для этого перейдите по пути как ->
C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin и нажмите на mongod.exe файл чтобы запустить сервер MongoDB.
Команда в Windows для экспорта
C:> mongodump --host remote_ip_address: 27017 --db -o C: / Users / Desktop / temp-folder
Команда в Windows для импорта
C:> mongorestore --host = ip --port = 27017 -d C: / Пользователи / Рабочий стол / temp-folder / db-dir
источник
источник
Экспорт:
mongo/bin> mongoexport -d webmitta -c domain -o domain-k.json
Импортировать:
mongoimport -d dbname -c newCollecionname --file domain-k.json
куда
источник
Есть несколько вариантов в зависимости от того, что вы хотите сделать
1) Если вы хотите экспортировать вашу базу данных в другую базу данных mongo, вы должны использовать
mongodump
. Это создает папку с файлами BSON, в которых есть метаданные, которых у JSON не было бы.2) Если вы хотите экспортировать свою базу данных в JSON, вы можете использовать ее,
mongoexport
за исключением того, что вы должны делать это по одной коллекции за раз (это специально). Однако я думаю, что проще всего экспортировать всю базу данных,mongodump
а затем конвертировать в JSON.источник
Для дампа, ваша БД должна следовать ниже CMD
источник
Чтобы экспортировать в формате JSON, выполните следующие команды, которые вы видите.
источник