Onderdelen van de Courses
Verzamelen is wat u publiceert.
Dus wanneer u een zoekopdracht uitvoert met Courses.find({"canEditCourse": { $in: [ this.userId ] } });
de canEditCourse
veld is wat u probeert te koppelen aan een userId
(het betekent letterlijk vind alle cursussen waar de canEditCourse
array bevat de userId.)
Ik zie echter niet in waarom je hier gebruikersnaam zou willen gebruiken. Wat levert dat jou op?
Als je dit wilt doen, moet je de canEditCourse
. hebben veld een array zijn van username
en niet userId
.Dat betekent dat u de logica moet wijzigen waar de cursussen worden gemaakt of bewerkt en waar dit veld wordt ingevuld.
Ik weet niet zeker of het de moeite is. Als je Cursussen wilt opzoeken op gebruikersnaam, zoek dan de Gebruiker op op gebruikersnaam, haal zijn/haar gebruikers-ID op en zoek de Cursussen op op gebruikers-ID.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});