mongodb游标的forEach不执行

时间:2018-06-20 16:10:07

标签: mongodb meteor-blaze

我有这个代码

var employeesEdited = [];
var employees =  Employees.find({group: 'ABC', task : { $in: ['CHANNEL MANAGER','SUPERVISOR','LINE LEADER'] }}
                    , {employeeNo: 1, firstName: 1, middleName: 1, lastName: 1, task: 1, supEmpNo: 1, supName: 1});

console.log(employees.count()); // I get 0 on this

employees.forEach((employee) => {
    console.log('inside for each'); // this does not run, no logs in browser
    employeesEdited.push(employee.employeeNo, employee.supEmpNo, 'test_tooltip');
});

employees.forEach((employee) => {
    console.log(`Emp no: ${employee.employeeNo}`);
});

console.log(employeesEdited);

我想做的是循环使用我的集合返回的游标。但是它似乎没有执行。 forEach循环内的console.log不执行。

Cursor.count()方法也返回0。

但是当我用console.log从find函数返回返回的光标时,如果我用console.log(employees)可以看到该对象中有项目

不确定我在做什么错,我按照流星中的文档遵循语法。

我也将代码从使用function()更改为使用粗箭头,但结果仍然相同

此代码在Template.template.onRendered事件内部。其他代码在运行,但是forEach不适用于我。

样本文件
{
    "_id": "5b27c83b4e6a6cb37b141910",
    "employeeNo": "RMM090713",
    "prodClientGroup": "ASC",
    "prodDivision": "DCS",
    "prodChannel": "ABC",
    "prodSection": "ADMIN",
    "prodTeam": "TEAM 1",
    "prodProduct": "",
    "prodClassification": "TEST CLASSIFICATION",
    "lastName": "SANTOS",
    "firstName": "MARK",
    "middleName": "MENDOZA"
}

我使模式非常简单和平坦,一行数据用于1个文档。

1 个答案:

答案 0 :(得分:0)

尝试使用cursor.toArray((err,docs)=>{})代替cursor.forEach