如果条件不在循环中工作

如果运行控制器文件时没有执行条件……

你正在把testing放在错误的地方。 循环 map函数内部 。 用户login到控制台的位置超出了范围 。 如果你想检查每次它应该在地图function。

但是,如果您只想保留cpu <50的用户, 首先使用Array.filter 。 您仍然可以loggingcpu <50项。 例如

app.get('/view', function (req, res) { User.aggregate( { $match: { "Host.Host_name": { $in: ["redhat1", "redhat2"] }}}, { $group: { _id: "$Host.Host_name",cpu1:{ $last:'$CPU.CPU_Free'}}}) .exec(function (err,docs){ if (err) return handleError(err); var Users = docs .filter(function (User) {return User.cpu1 < 50; }) .map(function (User){ console.log('Value is less than 50'); return { host: User._id, cf: User.cpu1 } }); res.render('index',{Users: Users}); }); }); 

如果要将所有用户返回到/ view端点,则注释掉.filter

你可以使用for循环。

 for (var i = Users.length - 1; i >= 0; i--) { if (Users[i].cpu1 < 50) console.log('Value is less than 50'); };