如何使用Node.js返回MongoDB集合中的文档数?

问题描述 投票:0回答:1

我需要编写一个函数,该函数使用Node.js返回集合中的文档数。这是我的代码(我遵循了another question中的建议):

async function countCollections(callback) {
  MongoClient.connect(url, function(err, db) {
    if (err) callback(error);
    var dbo = db.db(nameDB);
    dbo.collection(nameCollections).find(query).count(function(err, count) {
      if (err) callback(error);
      db.close();
      callback(null, count);
    });
  });
}

我以这种方式调用此功能:

await countCollections(function(err, count) {
    if (err) {
        return console.log(err.message);
    }
    console.log('Number of documents: ', count);
});

使用此方法,我只能查看计数值,但不能直接使用。调用函数时如何将计数值获取到变量中?

node.js mongodb count
1个回答
0
投票

您可以使用Mongo的[countDocuments]方法。(https://docs.mongodb.com/manual/reference/method/db.collection.countDocuments/)。

let count = await db.collection(nameCollections).countDocuments(query)

同样也不太了解您的应用程序的工作原理,我建议您不要在每次函数调用时都打开新的Mongo连接,而是在应用程序启动时打开一次。

© www.soinside.com 2019 - 2024. All rights reserved.