无法从子集合中读取数据

时间:2014-12-12 13:08:51

标签: node.js mongodb mongoose nosql

我想获取文档特定子集的status_code,但我在控制台中未定义。

这是我的代码:

router.route('/user/:_id/host/:_id/checkStatus/').post(function(req, res) {
var finalList = [];
Host.findOne({
    _id : req.params._id
}, function(err, host) {
    if (err) {
        res.send(err);
    } else {
        var count = host.joinees.length;
        var limits = [];
        for (var i = 0; i < count; i++) {
            limits.push(i);
        }
        async.eachSeries(limits, function(i, callback) {
            var ID = host.joinees[i].userid;
            console.log(ID);
            console.log(req.body.userid);
            if (ID === req.body.userid) {
                 finalList[0] = host.joinees[i].status_code;
                    console.log(finalList+"HHKHJKHKH");
            }
            console.log(finalList+"aaaaaa");
            callback();
        }, function() {
            console.log(finalList + '-------------');
            res.json({
                requestStatus : 1,
                message : "success! Status Code Retrived",
                joinRequestStatus : finalList
            });
        });
    }
});

});

1 个答案:

答案 0 :(得分:0)

我认为它们在if语句中不匹配,因为它们的类型不同。我的猜测是其中一个是String(很可能是您的查询结果),另一个是Number

您可以通过两种方式解决这个问题:要么只使用等值运算符(==)而不是等值等于运算符(===),要么可以将查询结果转换为{ {1}}例如,如果您在查询对象上使用Object调用mongoose,则处理结果。