【问题标题】:Iterate through mongoose find result遍历猫鼬查找结果
【发布时间】:2018-09-03 12:56:08
【问题描述】:

我在从 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),我会得到我的查询结果。如何逐条访问每条记录?我在控制台中什么也得不到。

【问题讨论】:

    标签: javascript mongoose


    【解决方案1】:

    你忘记初始化i

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

    【讨论】:

      【解决方案2】:

      由于您询问如何逐条访问每条记录,因此最好在您的库中拥有forEach,而不是标准的for 循环。一旦你通过了错误检查if:

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

      【讨论】:

      • Mongoose 查询结果是对象而不是数组,因此它们没有forEach 方法。
      • 抛出错误; ^ 类型错误:无法读取未定义的属性“forEach”
      猜你喜欢
      • 2012-02-05
      • 2017-09-21
      • 2020-12-16
      • 2017-05-08
      • 1970-01-01
      • 2015-12-16
      • 2014-07-25
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多