猫鼬模式仅将嵌套模式保存为id,而不作为对象

问题描述 投票:0回答:2

我有2个猫鼬模式:第一个,“反馈”:

var feedbackSchema = new mongoose.Schema({
    author: String,
    student: String,
    gender: String,
    content: String
});

是第二个“ aClass”的成员:

var aClassSchema = new mongoose.Schema({
    serialNumber: String,
    title: String,
    classDescription: String,
    curriculumVersion: String,
    scheduledDateTime: String,
    feedbacks: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Feedback"
        }
    ]
});

在ejs文件中,我试图像这样访问反馈的作者:


    <div style="width: 700px; margin: 50px auto; background-color:lightgrey; border: 3px solid black">
        <% aClass.feedbacks.forEach(function(feedback){ %>
        <p style="margin: 10px"><strong><%= feedback.author %> - <%= feedback.content %></strong></p>     
        <% }); %>
        <p>
   </div

但是我不能,因为在检查“ aClass”对象时,得到以下信息:

{反馈:[5e109f3fd1a6540cd8286628,5e10b1f64c82be15a9d9bda1,5e10b23f38800515b7415b4a],_id:5e109f3fd1a6540cd8286626,序列号:'12455223',班级,'De',' 01 04:00 AM',__v:3}

因此它仅保存对象ID,所以我无法访问作者或评论。有任何想法吗?我看到了许多相关问题,但没有一个能找到我要的答案,因此,如果这个问题已经存在,我会提前道歉。

mongodb mongoose ejs
2个回答
0
投票

确定,所以我才意识到我必须使用“填充”,如下所示:


0
投票

您也可以像这样填充聚合:

© www.soinside.com 2019 - 2024. All rights reserved.