Hình dạng của đối tượng mà bạn emit từ map của bạn hàm phải giống với đối tượng được trả về từ reduce của bạn , như là kết quả của một reduce có thể được đưa trở lại reduce khi xử lý số lượng lớn tài liệu (như trong trường hợp này).
Vì vậy, bạn cần thay đổi emit của mình để tạo các tài liệu như sau:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
và sau đó cập nhật reduce của bạn hoạt động phù hợp.