Itens dos
Courses
Coleção é o que você está publicando. Então, quando você consulta com
Courses.find({"canEditCourse": { $in: [ this.userId ] } });
o canEditCourse
campo é o que você está tentando corresponder a um userId
(literalmente significa encontrar todos os Cursos onde o canEditCourse
array contém o userId.) Não vejo por que você gostaria de usar o nome de usuário aqui. O que isso te dá?
Se você quiser fazer isso, então você precisa ter o
canEditCourse
campo seja uma matriz de username
e não userId
.Isso significa que você precisa mudar a lógica onde os Cursos são criados ou editados e onde este campo está sendo preenchido. Não tenho certeza se vale a pena. Se o que você quer é procurar Cursos por nome de usuário, procure o Usuário por nome de usuário, obtenha seu userId e procure os Cursos por userId.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});