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

const express = require("express");
const ejs = require("ejs");
const mongoose = require("mongoose");
const request = require("request");
const cheerio = require("cheerio");
const fs = require("fs");

const app = express();

// Установка EJS в качестве шаблонизатора
app.set('view engine', 'ejs');

// Подключение к MongoDB
mongoose.connect('mongodb://127.0.0.1/phoneNumbers', { useNewUrlParser: true, useUnifiedTopology: true });

// Определение схемы и модели для хранения номеров телефонов
const PhoneNumberSchema = new mongoose.Schema({
  number: { type: String, index: true },
  url: String,
  comments: [String],
  callType: String
});

const PhoneNumber = mongoose.model('PhoneNumber', PhoneNumberSchema);

// Функция для получения HTML-кода страницы
function getHtml(url) {
  return new Promise((resolve, reject) => {
    request(url, (error, response, html) => {
      if (error) {
        reject(error);
      } else {
        resolve(html);
      }
    });
  });
}

// Функция для получения номеров телефонов и сохранения их в базе данных
async function getNewPhoneNumbers() {
  console.log("Запущен процесс поиска новых номеров...");

  const phoneNumbers = await PhoneNumber.find().exec();
  const lastPageUrl = phoneNumbers.length > 0 ? phoneNumbers[0].url : null;
  const newPhoneNumbers = [];

  // Получить HTML-код первой страницы с номерами телефонов
  const firstPageUrl = "https://zvonili.com/";
  const firstPageHtml = await getHtml(firstPageUrl);

  // Использовать Cheerio для парсинга HTML-кода и извлечения информации о номере телефона
  const $firstPage = cheerio.load(firstPageHtml);
  const phoneElements = $firstPage(".card-header");

  phoneElements.each((index, element) => {
    const phoneNumber = $firstPage(element).find(".nomerlnk").text().trim();
    const url = $firstPage(element).find(".nomerlnk").attr("href");
    const comments = $firstPage(element).next().find("blockquote").text().trim().replace(/\s*[\[\(]?\s*(Опросы|Реклама|Мошенники)\s*[\]\)]?\s*/gi, '');
    const callTypeElements = $firstPage(element).next().find("span.type");
    const callType = callTypeElements.length > 0 ? callTypeElements.map((index, element) => $firstPage(element).text().trim()).get().join(", ") : "";

    // Добавить новый номер телефона в массив, если его еще нет в базе данных
    const existingPhoneNumber = phoneNumbers.find((phone) => phone.number === phoneNumber);
    if (!existingPhoneNumber) {
      newPhoneNumbers.push({ number: phoneNumber, url: url, comments: [comments], callType: callType });
    } else if (!existingPhoneNumber.comments.includes(comments)) {
      existingPhoneNumber.comments.push(comments);
      existingPhoneNumber.save();
    }
  });

  console.log(`Найдено ${newPhoneNumbers.length} новых номеров телефонов.`);

  // Сохранить новые номера телефонов в базе данных
  if (newPhoneNumbers.length > 0) {
    for (const phoneNumber of newPhoneNumbers) {
      const existingPhoneNumber = phoneNumbers.find((phone) => phone.number === phoneNumber.number);
      if (!existingPhoneNumber) {
        await PhoneNumber.create(phoneNumber);
      }
    }
  }
  return newPhoneNumbers;
}
// Создать маршрут для страницы синформацией о номере телефона
// Создать маршрут для страницы с информацией о номере телефона
// Создать маршрут для страницы с информацией о номере телефона
app.get("/phone/:number", async (req, res) => {
  const phoneNumber = await PhoneNumber.findOne({ number: req.params.number });

  if (phoneNumber) {
    const data = {
      number: phoneNumber.number,
      comments: phoneNumber.comments,
      callType: phoneNumber.callType,
    };
    res.render('phone', data);
  } else {
    res.status(404).send("Номер телефона не найден");
  }
});

// Маршрут для главной страницы
app.get("/", async (req, res) => {
  const phoneNumbers = await PhoneNumber.find().sort({ _id: -1 }).exec();
  const data = {
    phoneNumbers: phoneNumbers,
  };
  const html = ejs.render(fs.readFileSync("views/index.ejs", "utf8"), data);
  
  res.send(html);
});

// Запуск сервера и поиск новых номеров телефонов каждые 10 минут
const searchInterval = 1 * 60 * 1000; // 1 минут в миллисекундах
app.listen(3000, () => {
  console.log("Сервер запущен на порту 3000");
  getNewPhoneNumbers();
  setInterval(getNewPhoneNumbers, searchInterval);
});