Как получить количество документов в MongoDB с помощью NodeJS / express JS - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь получить счет documents в MongoDB коллекции, но я не получаю счет.

Вот что я пытаюсь:

//get the invoice count
Routes.route('/invoicescount').get((req, res) => {
  invoicesDB.count({}, (err, count) => {
    if (err) {
      res.status(400).send(err);
    } else {
      const c = count;
      res.status(200).send(c);
    }
  });
});

Этоне дает никакого значения, но в консоли выдает эту ошибку:

обнаружена ошибка: CastError: сбой приведения к ObjectId для значения "invoicescount" в пути "_id" для модели "invoices"

1 Ответ

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

Я использую эту функцию для подсчета каждой коллекции:

var MongoClient = require('mongodb').MongoClient;

var dbName = "myName";
var port = "27017";
var host = "localhost";

function getNumOfDocs (collectionName, host, port, dbName, callback) {
    MongoClient.connect("mongodb://" + host + ":" + port + "/" + dbName, function (error, db){
        if(error) return callback(error);

        db.collection(collectionName).count({}, function(error, numOfDocs){
            if(error) return callback(error);

            db.close();
            callback(null, numOfDocs);
        });
    }); 
} 

и вызываю ее:

getNumOfDocs("collName", host, port, dbName, function(err, count) {
   if (err) {
       return console.log(err.message);
   }
   console.log('number of documents', count);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...