Ich habe zwei Modelle; eine für die Benutzer und die andere für die StudyGroup. Jede StudyGroup hat ein eindeutiges Feld guid
. Das Benutzer Modell verfügt über ein Feld von studyGroups, das ein Array von Zeichenfolgen guid
ist. Ein Benutzer kann mehreren Lerngruppen beitreten.Mongoose-Aggregat, das unerwünschtes leeres Array zurückgibt
Benutzer Modell
const userSchema = new Schema({
cuid: { type: 'String', required: true },
firstName: { type: 'String', required: true },
lastName: { type: 'String', required: true },
studentId: { type: 'Number', required: true },
password: { type: 'String', required: true },
email: { type: 'String', required: true },
dateAdded: { type: 'Date', default: Date.now, required: true },
lastLogin: { type: 'Date', default: null, required: false },
studyGroups: [{ type: 'String' }],
});
Forshungsgruppe Modell
const studyGroupSchema = new Schema({
guid: { type: 'String', required: true },
groupName: { type: 'String', required: true },
course: { type: 'String', required: true },
teacher: { type: 'String', required: true },
description: { type: 'String', required: true },
dateAdded: { type: 'Date', default: Date.now, required: true },
chatMessages: [{ type: 'String' }],
});
ich alle Lerngruppen in der studyGroup
Array des Benutzer Modell finden möchten die Saiten mit guid
innerhalb des Arrays gespeichert . Senden Sie dann die entsprechenden studyGroup-Objekte an das Frontend.
export function getUserStudyGroups(req, res) {
User.aggregate([
{ "$unwind": "$studyGroups" },
{
"$lookup": {
"from": "studyGroups",
"localField": "studyGroups",
"foreignField": "cuid",
"as": "resultingStudyGroupsArray"
}
},
{ "$unwind": "$resultingStudyGroupsArray" },
{
"$group": {
"_id": null,
"myStudyGroups": { "$addToSet": "$resultingStudyGroupsArray" },
"count": { "$sum": 1 }
}
}
]).exec(function(err, results){
console.log(results);
return res.json({ studyGroups: results });
});
}
Der obige Code gibt mir jedoch nur ein leeres Array zurück. Aber ich möchte ein Array von studyGroup-Objekten zurückgeben.
' resultingTagsArray' Sie keine Tags resultierende Array irgendwo angelegt haben. Was ist es? –
Whoops, ich habe vergessen, das zu ändern. Lass mich sehen, ob das das Problem war. – pbgnz
Noch leeres Array nach dem Ändern des 'resultingTagsArray' in' resultingStudyGroupsArray' – pbgnz