gpt4 book ai didi

node.js - MongoDB 使用 Node.js 获取集合中的文档数(计数)

转载 作者:可可西里 更新时间:2023-11-01 09:36:27 26 4
gpt4 key购买 nike

我目前正在编写一个应该从集合中返回文档数量的函数,问题是当我返回它说未定义的值时,这是我的代码:

    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);

请帮帮我。

最佳答案

这是应该的样子

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);
});

请记住,如果您要多次调用此函数,最好只连接到数据库一次,然后使用相同的连接。

关于node.js - MongoDB 使用 Node.js 获取集合中的文档数(计数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com