0
我一直在爲此工作數小時,無法找到解決方案。.populate()無法正常工作
我正在使用
學生模型學校目錄:一個課程模式
var mongoose = require("mongoose");
var studentSchema = new mongoose.Schema(
{
name: String,
courses: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Course"
}
]
});
module.exports = mongoose.model("Student", studentSchema);
和...
VAR貓鼬=要求( 「貓鼬」);
var courseSchema = new mongoose.Schema (
{
name: String,
student: [
{
id:
{
type: mongoose.Schema.Types.ObjectId,
ref: "Student"
},
name: String
}
]
}
);
module.exports = mongoose.model("Course", courseSchema);
當我發現一個學生跑.populate ...它沒有學生中填充場值...
app.get("/students/:id", function(req, res){
Student.findById(req.params.id).populate("courses").exec(function(err, foundStudent){
if(err){
console.log(err);
} else {
console.log(foundStudent);
res.render("students/show", {student: foundStudent});
}
});
});
的執行console.log(foundStudent)將顯示.. 。
{ _id: 597e7a49c945ee13529d0871,
name: 'Collin DeSoto',
__v: 1,
courses: [ { _id: 597e7a4dc945ee13529d0872 } ] }
後填充..任何想法?
這可能是因爲您的實際文件不匹配其實您已經實現的模式。實際上'課程:[{_id:597e7a4dc945ee13529d0872}]'表明它沒有,因爲它應該是'courses:[597e7a4dc945ee13529d0872]',表示一個普通的ObjectId數組,這就是模式所說的。 –
對不起,您所指的文件是指我的路線或模型本身? –
文檔。如上面的'console.log()'輸出所示。它**不匹配**定義的模式。 –