Skema luwak menyimpan skema bersarang sebagai id saja, bukan sebagai objek

Saya punya 2 skema luwak: Yang pertama, "umpan balik":

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

adalah anggota, dari "aClass" kedua:

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

Dalam file ejs, saya mencoba mengakses penulis masukan seperti ini:


    <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

Tapi saya tidak bisa karena saat memeriksa objek "aClass", saya mendapatkan yang berikut:

{ masukan: [ 5e109f3fd1a6540cd8286628, 5e10b1f64c82be15a9d9bda1, 5e10b23f38800515b7415b4a ], _id: 5e109f3fd1a6540cd8286626, nomor seri: '12455223', title: 'Todays Class', classDescription: 'desc', curriculumVersion: '2', scheduleDateTime: ' 01 Januari 04:00', __v: 3 }

Jadi hanya menyimpan id objek saja, jadi saya tidak bisa mengakses penulis atau komentarnya. Ada ide? Saya melihat banyak pertanyaan terkait tetapi tidak ada satu pun yang memiliki jawaban yang saya cari, jadi saya minta maaf sebelumnya jika pertanyaan ini sudah ada di suatu tempat.


person Justin Y    schedule 04.01.2020    source sumber


Jawaban (2)


Anda juga dapat mengisi dengan agregat, seperti ini:

db.aclassModel.aggregate([ { $lookup: { from: "*youfeedbackcollection*", foreignField: "_id", localField: "feedbacks", as: "fee" } } ]

person Raul Sanchez Reyes    schedule 04.01.2020

Oke jadi saya baru sadar saya harus menggunakan "populate" seperti berikut:

AClass.findById(req.params.id).populate("feedbacks"), function(err, aClass){}...

Tentu saja saya menemukannya tepat setelah saya memposting pertanyaan...

person Justin Y    schedule 04.01.2020