Так что я мало о чем знаю MongoDB
. Я RoboMongo
использую, который я подключаюсь к MongoDB. Что мне нужно сделать, так это то, что в этом MongoDB есть коллекция. Я хочу экспортировать данные из этой коллекции, чтобы сохранить их в файл.
Я использовал интерфейс, чтобы открыть данные из коллекции в виде текста, сделал Ctrl+ Aи вставил в текстовый файл. Однако я обнаружил, что не все данные копируются, а также что в текстовых данных было много комментариев, которые, естественно, нарушают JSON.
Мне интересно, есть ли у RoboMongo Export As JSON
средство, позволяющее мне выполнять чистый экспорт.
Любые указатели приветствуются!
mongoexport
инструмента командной строки.mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing' --collection=contacts --out=contacts.json
Ответы:
Вы можете использовать
tojson
для преобразования каждой записи в JSON в сценарии оболочки MongoDB .Запустите этот скрипт в RoboMongo:
Это печатает все результаты в виде массива, подобного JSON.
Результат не совсем JSON! Некоторые типы, такие как даты и идентификаторы объектов, печатаются как вызовы функций JavaScript, например
ISODate("2016-03-03T12:15:49.996Z")
.Может быть не очень эффективным для больших наборов результатов, но вы можете ограничить запрос. В качестве альтернативы вы можете использовать
mongoexport
.источник
tojson(db.getCollection(...).find(...)["_batch"])
для вывода всего текущего пакета, полученного с сервера.["_batch"]
? Вы можете привести пример, как это использовать? Я пробовал это с Robo 3T 1.2.1, но там написано только «Скрипт выполнен успешно, но результатов нет».tojson(db.getCollection(...).find(...).toArray())
.Быстрый и грязный способ: просто напишите свой запрос как
db.getCollection('collection').find({}).toArray()
и щелкните правой кнопкой мышиCopy JSON
. Вставьте данные в любой редактор.источник
Функциональность оболочки Robomongo решит проблему. В моем случае мне понадобилась пара столбцов в формате CSV.
источник
Есть несколько графических интерфейсов MongoDB, некоторые из них имеют встроенную поддержку экспорта данных. Вы найдете полный список графических интерфейсов MongoDB на http://mongodb-tools.com
Вы спросили об экспорте результатов вашего запроса, а не об экспорте целых коллекций. Дайте 3T MongoChef MongoDB Gui попробовать этот инструмент имеет поддержку для вашего конкретного случая использования.
источник
вы говорите «экспорт в файл» как в электронной таблице? как в .csv?
ИМО, это САМЫЙ ПРОСТОЙ способ сделать это в Robo 3T (ранее robomongo):
В правом верхнем углу графического интерфейса Robo 3T есть кнопка «Просмотреть результаты в текстовом режиме», нажмите ее и скопируйте все.
вставьте все на этот сайт: https://json-csv.com/
нажмите кнопку загрузки, и теперь у вас есть электронная таблица.
надеюсь, это поможет кому-то, так как я бы хотел, чтобы у Robo 3T были возможности экспорта
источник
Не запускайте эту команду в оболочке, введите этот сценарий в командной строке, указав имя вашей базы данных, имя коллекции и имя файла, все заменяя заполнители ..
Меня устраивает.
источник
Не думаю, что у робомонго есть такая функция. Так что вам лучше использовать функцию mongodb как mongoexport для конкретной коллекции.
Но если вы ищете решение для резервного копирования, лучше использовать
источник
Расширяя ответ Аниша, я хотел что-то, что я мог бы применить к любому запросу, чтобы автоматически выводить все поля, а не определять их в инструкции печати. Возможно, это можно упростить, но это было что-то быстрое и грязное, что отлично работает:
источник
Если вы хотите использовать mongoimport , вам нужно экспортировать следующим образом:
источник
Используя сценарий оболочки robomongo:
Использование команды экспорта и импорта mongodb
Вы можете добавить
--jsonArray
параметр / флаг к своейmongoexport
команде, это экспортирует результат в виде одного массива json.Затем просто укажите
--jsonArray
флаг снова при импорте.Или удалите начальные и конечные скобки массива [] в файле, тогда ваш измененный и экспортированный файл будет импортирован с помощью
mongoimport
команды без--jsonArray
флага.Подробнее об экспорте здесь: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Импортируйте сюда: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
источник
У меня была такая же проблема, и запуск сценария в robomongo (Robo 3T 1.1.1) также не позволяет копировать значения, и не было возможности экспорта. Лучший способ добиться этого - использовать mongoexport, если mongodb установлен на вашем локальном компьютере, вы можете использовать mongoexport для подключения к базе данных на любом сервере и извлечения данных.
Чтобы подключиться к данным на удаленном сервере и к выходному файлу csv, запустите следующий mongoexport в командной строке
fieldFile: помогает извлечь нужные столбцы, например: содержимое fields.txt может быть просто:
только для извлечения значений столбца userId
Данные на удаленном сервере, выходной файл json:
это извлекает все поля в файл json
данные на localhost (mongodb должен работать на localhost)
Ссылка: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
источник
Решение:
Где:
база данных ->
имя коллекции mock-server -> имя
выходного файла api_defs -> childChoreRequest.json
источник
Расширение ответа Флориана Винтера для людей, которые хотят сгенерировать готовый к выполнению запрос.
drop
иinsertMany
запросить, используяcursor
:Его вывод будет таким:
источник
источник