Есть ли способ сбросить коллекцию mongo в формат json? Либо в оболочке, либо с использованием драйвера java. Я ищу тот, который имеет лучшую производительность.
Есть ли способ сбросить коллекцию mongo в формат json? Либо в оболочке, либо с использованием драйвера java. Я ищу тот, который имеет лучшую производительность.
Ответы:
Mongo включает утилиту mongoexport (см. Документацию), которая может сбрасывать коллекцию. Эта утилита использует собственный libmongoclient и, вероятно, является самым быстрым методом.
mongoexport -d <database> -c <collection_name>
Также полезно:
-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
ПРЕДУПРЕЖДЕНИЕ
mongoimport
иmongoexport
не сохраняйте надежно все богатые типы данных BSON, потому что JSON может представлять только подмножество типов, поддерживаемых BSON. В результате данные, экспортированные или импортированные с помощью этих инструментов, могут потерять некоторую степень точности.
Также http://bsonspec.org/
BSON предназначен для быстрого кодирования и декодирования. Например, целые числа хранятся как 32 (или 64) битные целые числа, поэтому их не нужно анализировать в текст и обратно. Это использует больше места, чем JSON для небольших целых чисел, но намного быстрее анализируется.
Помимо компактности, BSON добавляет дополнительные типы данных, недоступные в JSON, в частности типы данных BinData и Date.
mongoexport
/ mongoimport
туда и обратно?
Вот моя команда для справки:
mongoexport --db AppDB --collection files --pretty --out output.json
В Windows 7 (MongoDB 3.4) нужно переместить cmd в место, где находится mongod.exe
и mongo.exe
файл =>
C:\MongoDB\Server\3.4\bin
иначе он не будет работать, говоря, что он не распознает mongoexport
команду.
Из документации Mongo:
Утилита mongoexport берет коллекцию и экспортирует ее в JSON или CSV. Вы можете указать фильтр для запроса или список полей для вывода
Подробнее здесь: http://www.mongodb.org/display/DOCS/mongoexport
Если вы хотите сбросить все коллекции, выполните эту команду:
mongodump -d {DB_NAME} -o /tmp
Он сгенерирует все данные коллекций json
и bson
расширения в /tmp/{DB_NAME}
каталог
mongodump
выводит данные в BSON
формате. Другие ответы правильно называют mongoexport
правильным инструментом.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
Вы можете указатьhost
,port
,username
,password
как это и база данных аутентификации по умолчаниюadmin
.