我在理解JavaScript中的变量操作时遇到了问题。 以下代码:获取后向Mongoose Document添加一个新属性
UserScore.find(filter, function (err, userScores) {
var contests = [];
userScores.forEach(function(userScore)
{
contests.push(userScore.ContestId);
});
Contest.find({ '_id': { $in : contests } }, function(err, contestItems)
{
var result = [];
contestItems.forEach(function(con)
{
userScores.forEach(function(element) {
if(element.ContestId == con._id)
{
con.UserTeamName = element.TeamName;
con.UserPersonalScore = element.Score;
console.log(con);
console.log(con.UserPersonalScore);
result.push(con);
return;
}
});
});
res.status(200).json(result);
});
});
打印“CON”无两个添加的属性,并输出“con.UserPersonalScore”用适当的值。当推送结果时,con没有附加属性。我错过了什么?
我想我是以某种方式创建局部变量而不是属性,但为什么不被推送到结果数组?从MongoDB的查询返回
您需要提供一个实际演示问题的测试用例 - http://sscce.org/ - 您正在操纵很多变量(这可能会被简化),但不会向我们展示它们是如何定义的,并且你在声明'结果'中'con'的值是什么没有告诉我们你是如何确定的。 – Quentin
请编写完成json或con的对象结构 –
这里也没有任何JSON。 http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ – Quentin