我有一台服务器用于存储使用mongodb的日志文件。问题是在通过修订浏览时,我有一个显着的延迟和服务器上的性能峰值。有没有更好的方法来做到这一点:
function getrevisionslist(project,callback){
MongoClient.connect("mongodb://localhost:27017/devbed", {native_parser:true}, function(err, db) {
tmp=[]
if(err) { console.dir(err); }
db.collection(project).find({}).toArray(function(err, items) {
fillrevarr(tmp,items,0,project,callback);
db.close();
});
});
}
function fillrevarr(tmp,items,i,project,callback){
console.log(items)
num=JSON.stringify(items[i].revision).replace(/["']{1}/gi,"");
tmp.push("<a href=\"/"+project+"/"+num+"/Log\">"+num+"</a>")
if(i==items.length-1){callback(tmp)}
else{fillrevarr(tmp,items,(i+1),project,callback)}
}
这给了我一系列所有修订。
答案 0 :(得分:2)
不要将结果集转换为数组。改为使用光标:
var cursor = db.collection(project).find({});
cursor.each(function(err, item) {
// ...
});