【问题标题】:How can I return the number of documents in a MongoDB collection using Node.js?如何使用 Node.js 返回 MongoDB 集合中的文档数?
【发布时间】:2020-03-27 05:21:52
【问题描述】:

我需要使用 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】:

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

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

    另外,在不真正了解您的应用如何工作的情况下,我建议您不要在每次调用函数时都打开新的 Mongo 连接,而是在您的应用启动时打开一次。

    【讨论】:

    • 谢谢,但它似乎不起作用。你能更精确一点吗?我怎样才能一次连接到 Mongo?
    • 我再次不确定您的应用程序的外观,但理论上您在启动应用程序时连接到 mongo,然后您可以将连接作为函数之间的参数传递,或者更好的是有一个“帮助器”类持有客户,可以将其提供给任何提出要求的人。
    猜你喜欢
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多