Eléments des Courses
La collection est ce que vous publiez.
Ainsi, lorsque vous interrogez avec Courses.find({"canEditCourse": { $in: [ this.userId ] } });
le canEditCourse
champ est ce que vous essayez de faire correspondre à un userId
(cela signifie littéralement trouver tous les cours où le canEditCourse
tableau contient l'ID utilisateur.)
Je ne vois pas pourquoi vous voudriez utiliser le nom d'utilisateur ici à la place. Qu'est-ce que ça t'apporte ?
Si vous voulez faire cela, alors vous devez avoir le canEditCourse
champ être un tableau de username
et non userId
.Cela signifie que vous devez modifier la logique dans laquelle les cours sont créés ou modifiés et où ce champ est rempli.
Pas sûr que cela en vaille la peine. Si vous voulez rechercher des cours par nom d'utilisateur, recherchez l'utilisateur par nom d'utilisateur, obtenez son identifiant d'utilisateur et recherchez les cours par identifiant d'utilisateur.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});