Поиск и подсчет Мангуста с помощью оператора where

#mongodb #mongoose

#mongodb #mongoose

Вопрос:

Мне пришлось переписать некоторые функции, которые используют mongodb с mongoose. У меня есть функция, которая выполняет функцию findAndCount() из mongodb, но я не могу найти идентификатор для mongoose. Прямо сейчас я использую этот фрагмент кода:

 const [totalItems, items] = await Promise.all([
        model.estimatedDocumentCount(),
        model
            .find({
                ...where,
                ...(dateQuery amp;amp; { createdAt: { ...dateQuery } }),
            })
            .skip(_limit * (_page - 1))
            .limit(_limit)
            .sort(sort)
            .populate(populate)
            .select(select),
    ]);
 

Но я обнаружил, что estimatedDocumentCount() предназначен для всей коллекции, допустим, например, в коллекции есть 4 сохраненных документа, но затем появляется какой-то тип фильтра where и возвращаемый результат.find() — это один элемент, estimatedDocumentCount по-прежнему возвращает 4, и я не могу рассчитать правильную разбивку на страницы. Для использования .длина это не вариант, потому что есть пропуск и ограничение

Мой вопрос в том, могу ли я каким-то образом получить количество для всех документов, которые соответствуют фильтру? Заранее спасибо!