我目前正在编写一个函数,该函数应该返回集合中的文档数量,问题是当我返回值时它显示未定义,这是我的代码:
var MongoClient = require('mongodb').MongoClient;
// open the connection the DB server
var dbName = "ystocks";
var port = "27017";
var host = "localhost";
var tt = "mongodb://" + host + ":" + port + "/" + dbName;
//"mongodb://localhost:27017/ystocks"
function getNumOfDocs (collectionName, host, port, dbName) {
var tt = "mongodb://" + host + ":" + port + "/" + dbName;
count = 0;
MongoClient.connect(tt, function (error, db){
if(error) throw error;
collectionName = collectionName;
db.collection(collectionName).count({}, function(error, numOfDocs){
if (error) throw error;
//print the result
console.dir("numOfDocs: " + numOfDocs);
count = numOfDocs;
console.log("count is : " + count);
// close the DB
return numOfDocs;
db.close();
});// end of count
}); // Connection to the DB
//return count;
} // end of getNumOfDocs
var ee = getNumOfDocs ("stocks", "localhost", "27017", "ystocks");
console.log("ee is " + ee);
请帮我。
这是如何做到的should看起来像
var MongoClient = require('mongodb').MongoClient;
var dbName = "ystocks";
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("stocks", host, port, dbName, function(err, count) {
if (err) {
return console.log(err.message);
}
console.log('number of documents', count);
});
请记住,如果您要多次调用此函数,最好只连接到数据库一次,然后使用相同的连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)