Есть ли способ сбрасывать коллекцию mongo в json-формат? Либо на оболочке, либо с помощью java-драйвера. Я ищу тот, у кого лучшая производительность.
Сброс Монго-коллекции в формат JSON
Ответ 1
В Mongo включена утилита mongoexport (см. docs), которая может сбрасывать коллекцию. Эта утилита использует собственный libmongoclient и, вероятно, самый быстрый метод.
mongoexport -d <database> -c <collection_name>
Также полезно:
-o
: записать вывод в файл, в противном случае используется стандартный вывод (docs)
--jsonArray
: генерирует действительный json-документ вместо одного json-объекта в строке (docs)
--pretty
: выводит формат json (docs)
Ответ 2
Используйте 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. В результате данные, экспортированные или импортированные с помощью этих инструментов, могут потерять некоторую степень точности.
Ответ 3
Из документации Mongo:
Утилита mongoexport принимает коллекцию и экспортирует ее в JSON или CSV. Вы можете указать фильтр для запроса или список полей для вывода
Подробнее здесь: http://www.mongodb.org/display/DOCS/mongoexport
Ответ 4
Если вы хотите сбросить все коллекции, запустите эту команду:
mongodump -d {DB_NAME} -o /tmp
Он будет генерировать все данные коллекций в расширениях json
и bson
в каталог /tmp/{DB_NAME}
Ответ 5
В Windows 7 - MongoDB 3.4
Нужно переместить cmd в место, где находятся файлы mongod.exe и mongo.exe = > C:\MongoDB\Server\3.4\bin
иначе он не будет работать, говоря, что он не реконструирует команду mongoexport
.
Здесь моя для справки -
mongoexport --db AppDB --collection files --pretty --out output.json