通过mongoose查找结果迭代

时间:2013-04-06 16:33:53

标签: javascript mongoose

我在使用mongoose从查询结果中获取数据时遇到一些问题:这是我的函数:

getNinjas : function(res){
    var twisted = function(res){
        return function(err, data){
            if (err){
                console.log('error occured');
                return;
            }
            res.send('My ninjas are:\n');
            for (var i;i<data.length;i++){
                console.log(data[i].name);
            }
                            //I need to process my data one by one here
        }
    }

    Ninja.find({},'name skill',twisted(res));
}

因此,如果我在getNin​​jas函数中console.log(data),我会得到查询结果。如何逐个访问每条记录?我没有在控制台中得到任何东西。

2 个答案:

答案 0 :(得分:5)

您忘记初始化i

for (var i = 0;i<data.length;i++){
//        ^^^^
  console.log(data[i].name);
}

答案 1 :(得分:2)

由于您询问如何逐个访问每条记录,因此除标准forEach循环外,在您的工具库中使用for是件好事。一旦您越过错误检查if

data.forEach(function(record){
    console.log(record.name);
    // Do whatever processing you want
});