0

我有一台服务器,用于使用 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)}
}

这给了我所有修订的数组。

4

1 回答 1

2

不要将结果集转换为数组。改为使用光标:

var cursor = db.collection(project).find({});
cursor.each(function(err, item) {
    // ...
});
于 2013-05-08T18:57:19.423 回答