2014-10-21 2 views
0

У меня есть работа по сокращению карты, которая всегда кажется зависающей на одном документе. Я подозреваю, что моя функция карты бросает ее на бесконечный цикл, но я не могу понять, как это сделать. Есть ли способ выяснить, какой документ он повесил? И в идеале отлаживать его как-то?Найдите, какой документ вызывает Mongo, чтобы повесить

ответ

1

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

0

Есть ли способ, чтобы выяснить, какой документ является один он подвешивали на

использования делают функции print(), чтобы напечатать _id документа в настоящее время обрабатываются, внутри Map() функция перед тем излучающие:

var map = function() { 
    print("Mapping "+this._id); 
    emit(this._id, this.value); 
}; 

И идеально отладить это как-то

Эквивалент заявления отладки на стороне клиента Java скрипта, console.log() в MongoDB является print() заявление. Он должен использоваться для целей отладки.

См: http://docs.mongodb.org/manual/tutorial/troubleshoot-map-function/

Смотрите также: mongodb: how to debug map/reduce on mongodb shell

Смежные вопросы