db.listCollections().toArray(function(err, collections){
for(i = 1; i < collections.length; i++){
if(i < parseInt(collections.length)){
var collect = db.collection(collections[i].name.toString(),function(){
collect.count(function(err,result){
console.log(collections[i].name.toString());
corrCount = corrCount + result;
});
});
}else{
collect = collections[i].name;
}
}
});
所以我的问题是collect
最终未定义,因此无法计算集合中的条目数量。有些东西告诉我,我应该用回调来解决这个问题,但我一直都在失败。此外,我不明白为什么控制台会在错误发生之前打印出2次。我将nodejs与mongodb本机驱动程序一起使用。
答案 0 :(得分:0)
您需要将其余代码移出回调,如下所示:
db.listCollections().toArray(function(err, collections) {
for (i = 1; i < collections.length; i++) {
if (i < parseInt(collections.length)) {
var collect = db.collection(collections[i].name.toString());
collect.count(function(err, result) {
console.log(collections[i].name.toString());
corrCount = corrCount + result;
});
} else {
collect = collections[i].name;
}
}
});