Сброс Монго-коллекции в формат JSON

Есть ли способ сбрасывать коллекцию mongo в json-формат? Либо на оболочке, либо с помощью java-драйвера. Я ищу тот, у кого лучшая производительность.

Ответ 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