【发布时间】:2020-10-10 19:37:43
【问题描述】:
我在 mongoose 中加入两个集合时遇到问题。我有两个集合,即:学生和考试。
学生模型:
{
fullname: { type: String, required: true },
email: { type: String, required: true },
}
考试模式:
{
test: { type: String, required: false },
top10: [
type: {
studentId: { type: String, required: true },
score: { type: Number, required: false },
}
]
}
现在,我想通过 studentId 加入他们两个。结果应该是:
{
"test": "Sample Test #1",
"students": [
{
"studentId": "5f22ef443f17d8235332bbbe",
"fullname": "John Smith",
"score": 11
},
{
"studentId": "5f281ad0838c6885856b6c01",
"fullname": "Erlanie Jones",
"score": 9
},
{
"studentId": "5f64add93dc79c0d534a51d0",
"fullname": "Krishna Kumar",
"score": 5
}
]
}
我所做的是使用聚合:
return await Exams.aggregate([
{$lookup:
{
from: 'students',
localField: 'top10.studentId',
foreignField: '_id',
as: 'students'
}
}
]);
但这个结果并不是我所希望的那样。任何想法如何实现这一目标?我很乐意为您提供任何帮助。谢谢!
【问题讨论】: