Как получить плоский файл из MongoDB? - PullRequest
2 голосов
/ 01 ноября 2011

Сейчас я использую mongodump и bsondump, чтобы вывести документы из MongoDB, а затем применяю регулярные выражения к документам, чтобы получить желаемое значение.Что я действительно хочу, так это простой файл, скажем, адреса электронной почты каждого пользователя в коллекции users, в виде плоского файла, которым я могу затем манипулировать с помощью grep, uniq и т. Д.

В MySQL это будет:

mysql < query.sql > outfile.txt

Файл query.sql будет выглядеть примерно так:

SELECT email FROM users;

Но в Монго, когда япередать файл .js, я до сих пор не уверен, как заставить его выводить отдельные значения.

mongo --db test < query.js > outfile.txt

Что будет query.js для пользователей коллекция?

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

Вы можете использовать forEach для запуска каждого результата с помощью функции JavaScript и печати строки в нужном вам формате:

db.users.find().forEach(function(user) {
    print(user.email);
});

Параметр командной строки --quiet также полезен для удаления строк заголовка извыход.

0 голосов
/ 09 апреля 2014

Этот вопрос был повторен здесь

в итоге

mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) 
{printjson(c.next())}" >> test.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...