Проблема возникает потому, что вы используете больше памяти, чем у вас есть. Это происходит потому, что вы, кажется, загружаете 2 миллиона записей в память, а затем пытаетесь JSON их перед отправкой.
Вам нужно будет направить записи mon go в ответ, таким образом, вы получите только подмножество коллекции за один раз.
cursor.stream().pipe(JSONStream.stringify()).pipe(res);
JSONStream - это пакет, который может помочь вам сделать это очень легко. Курсор будет вашим go курсором.
Узнайте больше о потоке в документах nodeJS, чтобы понять, как он работает. В основном вы получаете один документ, переводите его в строку, отправляете, вводите и повторяете.