我想获取文档特定子集的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
});
});
}
});
});
答案 0 :(得分:0)
我认为它们在if
语句中不匹配,因为它们的类型不同。我的猜测是其中一个是String
(很可能是您的查询结果),另一个是Number
。
您可以通过两种方式解决这个问题:要么只使用等值运算符(==
)而不是等值等于运算符(===
),要么可以将查询结果转换为{ {1}}例如,如果您在查询对象上使用Object
调用mongoose
,则处理结果。