我一直在爲此奮鬥了幾天。我試圖返回由ID列表引用的數據。爲什麼我的Mongoose查詢在循環中只返回第一個結果?
一個團隊的例子JSON:
{
"Name":"Team 3",
"CaptainID":"57611e3431c360f822000003",
"CaptainName":"Name",
"DateCreated":"2016-06-20T10:14:36.873Z",
"Members":[
"57611e3431c360f822000003", //Same as CaptainID
"57611e3431c360f822000004" //Other members
]
}
這裏是路線:
router.route('/teams/:user_id')
.get(function (req, res) {
TeamProfile.find({
Members : {
$in : [req.params.user_id]
}
}).exec(function (err, teamProfiles) {
teamProfiles.forEach(function (teamProfile) {
UserProfile.find({
UserID : {
$in : teamProfile.Members.map(function (id) {
return id;
})
}
}, function (err, userProfiles) {
teamProfile.Members = userProfiles;
console.log(teamProfile); //will console log the remaining 2
})
.exec(function (err) {
res.json(teamProfile) //returns the first one only
})
})
});
})
的想法是隻使用ID來獲取先進返回配置文件的路徑日期數據。
但是,它正在努力。它獲取用戶信息和所有用戶信息,但不會返回代碼中評論的所有用戶組和所有用戶。總共有3支隊伍。只有第一個被返回。如果我刪除res.json(teamProfile)
它控制檯記錄所有3個團隊。我想要返回所有3支球隊。
使用異步函數獲取結果 –