我需要编写一个函数,该函数使用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);
});
使用此方法,我只能查看计数值,但不能直接使用。调用函数时如何将计数值获取到变量中?
您可以使用Mongo的[countDocuments]方法。(https://docs.mongodb.com/manual/reference/method/db.collection.countDocuments/)。
let count = await db.collection(nameCollections).countDocuments(query)
同样也不太了解您的应用程序的工作原理,我建议您不要在每次函数调用时都打开新的Mongo连接,而是在应用程序启动时打开一次。