Как узнать количество документов с помощью метода find express js? - PullRequest
0 голосов
/ 23 октября 2019

Как узнать количество документов, найденных в экспрессах? Я искал в Google и StackOverflow. Но я не смог найти. то, что говорят люди, это использовать countDocuments, чтобы получить количество документов Модели, например, следующее:

UserModel.countDocuments(function(err,count){ 
  count
  res.render('index',{count:count}); // returning count and rendering to index.ejs
});

Но я хочу и набор результатов, и одновременно recordcount, например, следующее

UserModel.find(function(err,data){
    res.render('index',{data:data,count:data.count});
});

Ответы [ 3 ]

0 голосов
/ 23 октября 2019

Поскольку UserModel.find() возвращает массив, вы можете просто вернуть счетчик из data.length.

Кроме того, просто отметьте, что Model.count() устарело в последней версии mongoose (v5.7.6). Если вы непреклонны в использовании этого или чего-то подобного, вы можете использовать один из следующих способов:

  • Model.estimatedDocumentCount() (быстрый): который использует метаданные коллекции, чтобы дать вам оценку из числа документов см. документы .
  • Model.countDocuments() (может быть медленным для больших коллекций): для более точного подсчета. см. Документы .
0 голосов
/ 11 ноября 2019

UserModel.find () возвращает массив, так что вы можете просто продолжить и выполнить: res.render ('index', {data: data, count: data.length});

0 голосов
/ 23 октября 2019
UserModel.find({}, null, options).exec().then(data => {
        UserModel.count({}, (err, counts) => {
            if (err) {
                           res.send(err)

            } else {
                res.render('index',{data:data,count:data.counts});

            }
        })
    }).catch(err => {
           res.send(err)
    });
...