我有关联的集合,如下所示。在我正在显示博客的EJS模板中,我还希望显示每个博客的相关评论。
Model Structure:
Blog
..title (string)
..blog (string)
..comments (Referenced Comment Model)
....comment (string)
Comment
..comment(string)
我有以下代码来查询数据并将其传递给EJS模板:
app.get('/blog',function(req,res){
Blog.find({},function(err,blogs){
if(err){
console.log('can not get blogs from db!!');
} else {
res.render('pages/blogs', {blogs: blogs});
}
});
});
虽然EJS收到的数据包含评论数据,但我无法使用以下EJS代码显示评论:
<h2>Blog Posts</h2>
<% blogs.forEach(function(blog){ %>
<div>
<h3>Title: <%= blog.title %></h3>
<p>Blog Post: <%= blog.blog %></p>
<p>Comments </p>
<% blog.comments.forEach(function(blogComment){ %>
<span><%= blogComment.comment %></span>
<%}) %>
</div>
<% }) %>
当我在EJS上放下以下代码时,我可以看到相关评论的ID:
<span>Comments: <%= blog.comments %> </span>
评论:5a9d070609a0f31f33b99de8,5a9d0728083d5d1f672956cb
请您解释我如何在EJS模板上显示评论(参考数据)?
答案 0 :(得分:0)
经过深入阅读后,我发现在输入EJS模板之前需要填充相关数据。所以正确的数据库查询如下。请注意).populate("comments").exec(
插入:
app.get('/blog',function(req,res){
Blog.find({}).populate("comments").exec(function(err,blogs){
if(err){
console.log('can not get blogs from db!!');
} else {
res.render('pages/blogs', {title: "All Blog Posts", blogs: blogs});
}
});
});