Записать результат mongodb MapReduce в файл

#javascript #mapreduce #mongodb

#javascript #mapreduce #mongodb

Вопрос:

У меня есть коллекция в MongoDB, где данные в коллекции имеют следующую структуру :

 {userid = 1 (the id of the user), key1 = value1 , key2 = value2, .... }
  

Я хочу написать функции mongodb mapreduce, где я мог бы поместить идентификатор пользователя в функцию map, а в функцию reduce мне нужно записать их пары (ключ, значение) в файл csv (?) таким образом, чтобы они были :

ключ1, ключ2, ключ3,…

значение1,значение2,значение3,..

значение1,значение2,значение3,..

значение1,значение2,значение3,..

Как я могу это сделать с mongodb

Спасибо

Ответ №1:

Нет опции «вывод в файл».

Документация MongoDB содержит подробную информацию об экспорте данных.

В частности, mongoexport позволяет экспортировать с помощью JSON или CSV, которые должны быть понятны из другого программного обеспечения.

Если вы хотите значительно изменить выводимые данные, то вам придется использовать клиентскую библиотеку и перемещать курсор по данным при записи в файл.

Ответ №2:

Вы не можете записывать данные в файл напрямую. Вы должны реализовать такую функциональность на уровне приложения, считывая данные из коллекции и записывая их в файловую систему в любом формате.

Комментарии:

1. Спасибо, еще один вопрос, если вы знаете, что у каждого идентификатора пользователя есть свой набор пар ключ / значение, как мне написать, что мой emit является универсальным .. чтобы он проходил через них key1 =value1, key2 = value2 и т.д. .. .. так что это было бы что-то вроде: emit(this.userid, * остальные пары ключ / значение будут отправлены сюда ) ;

2. Не используйте комментарии для новых вопросов. И примите ответ, если он подходит для вас.