Objekt i Courses
Samling är vad du publicerar.
Så när du frågar med Courses.find({"canEditCourse": { $in: [ this.userId ] } });
canEditCourse
fältet är det du försöker matcha med ett userId
(det betyder bokstavligen att hitta alla kurser där canEditCourse
arrayen innehåller användar-ID.)
Jag förstår inte varför du skulle vilja använda användarnamn här istället. Vad ger det dig?
Om du vill göra detta måste du ha canEditCourse
fältet vara en array av username
och inte userId
.Det betyder att du måste ändra logiken där kurserna skapas eller redigeras och var detta fält fylls i.
Inte säker på att det är värt besväret. Om det du vill är att slå upp kurser efter användarnamn, slå sedan upp användaren efter användarnamn, hämta hans/hennes användar-ID och slå upp kurserna efter användar-ID.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});