Есть ли способ сбросить коллекцию mongo в формат json? Либо в оболочке, либо с использованием драйвера java. Я ищу тот, который имеет лучшую производительность.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminВы можете указать host, port, username, passwordкак это и база данных аутентификации по умолчанию admin.
Макс Пэн
Ответы:
177
Mongo включает утилиту mongoexport (см. Документацию), которая может сбрасывать коллекцию. Эта утилита использует собственный libmongoclient и, вероятно, является самым быстрым методом.
mongoexport -d <database>-c <collection_name>
Также полезно:
-o: записать вывод в файл, в противном случае используется стандартный вывод ( документы )
--jsonArray: генерирует действительный документ json вместо одного объекта json на строку ( документы )
--pretty: выводит отформатированный json ( документы )
Используйте флаг -d, чтобы указать, какую базу данных использовать.
Реймунд
8
Если вам нужен хорошо напечатанный JSON (например, для проверки коллекции во время разработки), используйте --prettyфлаг:mongoexport -d mydatabase -c mycollection --pretty
Max Truxa
6
Если Mongo находится на другом хосте, вот пример из документа Mongo mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
What
Похоже, что --prettyв версии 2.6.10 больше нет.
Iceedwater
115
Используйте mongoexport / mongoimport для дампа / восстановления коллекции:
ПРЕДУПРЕЖДЕНИЕ
mongoimportи mongoexportне сохраняйте надежно все богатые типы данных BSON, потому что JSON может представлять только подмножество типов, поддерживаемых BSON. В результате данные, экспортированные или импортированные с помощью этих инструментов, могут потерять некоторую степень точности.
BSON предназначен для быстрого кодирования и декодирования. Например, целые числа хранятся как 32 (или 64) битные целые числа, поэтому их не нужно анализировать в текст и обратно. Это использует больше места, чем JSON для небольших целых чисел, но намного быстрее анализируется.
Помимо компактности, BSON добавляет дополнительные типы данных, недоступные в JSON, в частности типы данных BinData и Date.
Есть ли пример того, что «богатые данные BSON» не переживут цикл mongoexport/ mongoimportтуда и обратно?
andrewdotn
1
Он добавляет поддержку таких типов данных, как Date и binary, которые не поддерживаются в JSON. Кроме того, более быстрое кодирование и декодирование bsonspec.org
В Windows 7 (MongoDB 3.4) нужно переместить cmd в место, где находится mongod.exeи mongo.exeфайл =>
C:\MongoDB\Server\3.4\binиначе он не будет работать, говоря, что он не распознает mongoexportкоманду.
Кто-нибудь знает форматировщик, который будет форматировать обычный json в глупый формат «одна строка без запятой», который MongoDB ожидает при импорте?
conor909
3
Из документации Mongo:
Утилита mongoexport берет коллекцию и экспортирует ее в JSON или CSV. Вы можете указать фильтр для запроса или список полей для вывода
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
Вы можете указатьhost
,port
,username
,password
как это и база данных аутентификации по умолчаниюadmin
.Ответы:
Mongo включает утилиту mongoexport (см. Документацию), которая может сбрасывать коллекцию. Эта утилита использует собственный libmongoclient и, вероятно, является самым быстрым методом.
Также полезно:
-o
: записать вывод в файл, в противном случае используется стандартный вывод ( документы )--jsonArray
: генерирует действительный документ json вместо одного объекта json на строку ( документы )--pretty
: выводит отформатированный json ( документы )источник
--pretty
флаг:mongoexport -d mydatabase -c mycollection --pretty
mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
--pretty
в версии 2.6.10 больше нет.Используйте mongoexport / mongoimport для дампа / восстановления коллекции:
Экспорт файла JSON :
mongoexport --db <database-name> --collection <collection-name> --out output.json
Импортировать файл JSON :
mongoimport --db <database-name> --collection <collection-name> --file input.json
Также http://bsonspec.org/
источник
mongoexport
/mongoimport
туда и обратно?Вот моя команда для справки:
В Windows 7 (MongoDB 3.4) нужно переместить cmd в место, где находится
mongod.exe
иmongo.exe
файл =>C:\MongoDB\Server\3.4\bin
иначе он не будет работать, говоря, что он не распознаетmongoexport
команду.источник
Из документации Mongo:
Подробнее здесь: http://www.mongodb.org/display/DOCS/mongoexport
источник
Если вы хотите сбросить все коллекции, выполните эту команду:
Он сгенерирует все данные коллекций
json
иbson
расширения в/tmp/{DB_NAME}
каталогисточник
mongodump
выводит данные вBSON
формате. Другие ответы правильно называютmongoexport
правильным инструментом.