【发布时间】:2020-07-21 04:13:54
【问题描述】:
我正在尝试建立一个小型的个人博彩网站。我设法在每个集合中引用另一个集合中的 ObjectId 数组。 但是现在我很难将这些集合中的项目放入视图页面。我怎样才能获得更多的 ObjectId 并传递项目。 我在看.populate()。这是要走的路吗?如果是这样,在这种情况下,我可以使用来自猜测架构的信息的用户(引用匹配架构)
//route//
router.get("/:id", function(req, res){
User.findById(req.params.id)
.populate("guess")
.exec(function(err,foundUser){
if(err){
console.log(err);
} else {
res.render("users/show",{user:foundUser});
}
});
});
-----------------------
//viewPage//
<%user.guessList.forEach(function(guess){%>
<div> <%= guess %></div> //need items of this guesses
<% }) %>
------------------
架构如图所示
【问题讨论】:
-
你好,我不能说这个网站的其他用户,但对我来说,我需要更多信息,这样我才能帮助你。你能更好地解释你想要什么吗?
-
当您使用
populate("guess")时,我不确定它是否正确,因为您在User上没有Guess。在其他要填充的情况下,您需要在要填充的模式中拥有要填充的模型。在这里看我的一个例子:stackoverflow.com/questions/60727064/… -
你要么需要修正你的代码中的一些东西,要么更好地解释你想要什么。
-
该网站的理念是:用户可以对足球比赛进行猜测。 users 数据库将包含一个数组,其中包含他们所做的所有猜测,Match 数据库将包含所有与那里的球队/分数进行的比赛以及guessesID 的数组,这个guessesID 对包含guess/userID/matchID 的de GuessModel 的引用,所以每个模型包含对其他模型的引用,该部分有效。但是现在,如果我例如尝试了解用户所做的所有猜测,我应该得到这些 id 的项目。获取 ID 似乎可行,但它们不包含项目。
标签: javascript mongodb express mongoose ejs