RE: Доступ к другим коллекциям из функций Map / Reduce. То, что вы можете сделать, это использовать «область» для добавления данных, необходимых m / r во время выполнения. ПРИМЕЧАНИЕ: область действия принимает только ПРОСТУЮ коллекцию объектов здесь. Под простыми я имею в виду отсутствие вложенных документов.
scope = { People : [{ Name : 'bob', Color : 'blue'}, { Name : 'sally', Color: 'orange'}] }
Приведенный выше набор областей работает нормально. В функции m / r просто обращайтесь к «Людям» как к глобальной переменной, и вы можете перебирать свою коллекцию и т. Д.
scope = { People : [{ Name : 'bob', Color : { Favorite : 'blue'} }, { Name : 'sally', Color : { Favorite : 'orange' } }] }
Выше не будет работать, в зависимости от используемого вами драйвера вы получите сообщение об ошибке диапазона и сообщите, что максимальный размер вызова превышен или что-то в этом роде. Придерживаясь простых объектов в области видимости, жизнь будет простой.