Экспортировать результат запроса Mongodb в файл - PullRequest
0 голосов
/ 30 января 2019

Мне нужно экспортировать результат запроса агрегации mongodb в файл.Я подключен к удаленному серверу, поэтому мне нужно что-то вроде db.myCollection.aggregate([...]).printToFile('C:\Downloads\resultFile.txt') Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Добавьте кавычки в строку подключения и используйте printjson() для печати объектов JSON.Обратите внимание, что aggregate() возвращает курсор, и, следовательно, вы должны проходить через него.Если вы не используете forEach, он возвращает только верхние 20.

Вот команда из одной строки.

mongo --quiet "mongodb://junior:SECRETPASSWORD@mongo4:9000,mongo5:9000/WebApp?authSource=admin&replicaSet=rs0&readPreference=secondaryPreferred" --eval 'db.cars.aggregate([...]).forEach(function(doc) { printjson(doc);})' > output.txt

В более читаемом многострочном формате

mongo --quiet \
    "mongodb://junior:SECRETPASSWORD@mongo4:9000,mongo5:9000/WebApp?authSource=admin&replicaSet=rs0&readPreference=secondaryPreferred" \
    --eval 'db.cars.aggregate([...]).forEach(function(doc) \
        { printjson(doc);})' > output.txt
0 голосов
/ 30 января 2019

Я предполагаю, что Windows - это ваша операционная система, основанная на вашем примере пути.В этом случае вы можете использовать > для перенаправления вывода команды консоли в файл.Чтобы запустить aggregate непосредственно из cmd, вы можете использовать mongo в качестве клиента с параметром - eval , который позволяет запускать код JavaScript, попробуйте что-то вроде этого:

C:\Program Files\MongoDB\Server\4.0\bin>mongo --host <yourhost> --port <yourport> --eval "db.myCollection.aggregate([...])" > C:\Downloads\resultFile.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...