Любой способ увидеть результаты карты в функции mapreduce? - PullRequest
0 голосов
/ 01 июня 2011

Для целей отладки было бы замечательно иметь возможность увидеть только то, что вы получаете от метода карты. Возможно ли это в ruby?

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Для этого в оболочке Mongo вы можете определить собственную версию отладки функции emit() для печати информации трассировки.

function emit(k, v) {
    print("emit");
    print("  k:" + k + " v:" + tojson(v));
}

Проверьте Устранение неполадок MapReduce в документации MongoDB для получения дополнительной информации.

0 голосов
/ 03 мая 2013

Я знаю, что документация Mongo рекомендует определять вашу собственную функцию emit, но мне проще вместо этого использовать print () непосредственно в моих функциях map- и Reduce, пока я наблюдаю журнал Mongo.

Просто поместите любуюprint () в вашем коде, запустите tail -f /var/log/mongodb/mongodb.log, затем запустите ваш код.Вы должны увидеть вывод print () на консоль.

Вот несколько преимуществ:

  • Возможность отладки функции redu () - определение собственного emit () здесь не помогает
  • Нет необходимости определять функцию emit () каждый раз, когда вы запускаете консоль mongo
  • Пишите свой код в своем редакторе вместо того, чтобы переходить назад и вперед между консолью иIDE
  • Возможность генерации кода и интерполяции переменных на вашем родном языке
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...