如果条件在循环中不起作用

时间:2016-01-23 09:49:19

标签: javascript html node.js mongodb

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

2 个答案:

答案 0 :(得分:2)

您将测试放在错误的位置。循环地图函数中。在您登录控制台的位置,用户超出范围。如果你想每次检查它应该在map函数中。

但是,如果你想只保留那些用cpu< 50首先使用 Array.filter 。你仍然可以记录cpu< 50项。 e.g。

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

答案 1 :(得分:0)

你可以使用for循环。

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